You are not logged in.

  • Login

Sheldon

Unregistered

1

Monday, June 27th 2011, 9:10pm

Verständnisproblem mit Methode

Hallo Leute,

wieder mal steh ich vor einem Problem und langsam habe ich das Gefühl, dass ich rein gar nichts von meinem Lehrbuch verstanden habe.
Obwohl ich mich immer mit dem Buch auseinander setze.

Ich versuche meine Datenverbindung zu der Microsoft Datenbank in eine Methode zu schreiben, weil ich keine Lust habe
es ständig zu kopieren oder nochmal zu schreiben. Also dachte ich einen Methode ohne Rückgabewert.

C# Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
private void submit_Click(object sender, RoutedEventArgs e)
        {
            string username = user.Text;  // deklarierter Bezeichner username
            string password = pwd.Password; // deklarierter Bezeichner password
 
            databaseConnection(); // Methode MainWindow.databaseConnection();
 
            SqlCommand cmd = new SqlCommand();  // SQL-Befehl an Datenbank
            cmd.CommandText = "select count(*) from userDatabase where (username = @value)";
            cmd.Parameters.Add("value", System.Data.SqlDbType.VarChar).Value = username;
            cmd.Connection = databaseConnection.conn; // ist Methode und im angegeben Kontext nicht gültig
 
            databaseConnection.conn.Open(); // ist Methode und im angegeben Kontext nicht gültig
 
            int count = Convert.ToInt32(cmd.ExecuteScalar()); // Anzahl der Ergebnise vom SQL-Befehl
 
 
            if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))  // Überprüfung
            {
                MessageBox.Show("Bitte füllen Sie die Felder aus!");
            }
            else
            {
                if (count <= 0)
                {
                    MessageBox.Show("Der Benutzer ist uns leider nicht bekannt, wollen Sie sich registrieren?",
                        "Information",
                        MessageBoxButton.YesNo,
                        MessageBoxImage.Question,
                        MessageBoxResult.Yes);
                }
                else
                {
 
                }
            }
        }
 
        public static void databaseConnection()
        {
            SqlConnection conn = new SqlConnection(); // Datenverbindung...
            conn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Benutzer\\Documents\\userManagement.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        }
    }


Ich habe alles ohne Methode schon probiert und es funktioniert.
Und hier steckt der Fehler.

C# Quellcode

1
2
3
cmd.Connection = databaseConnection.conn; // ist Methode und im angegeben Kontext nicht gültig
 
            databaseConnection.conn.Open(); // ist Methode und im angegeben Kontext nicht gültig


Obwohl ich doch oben die Methode mit databaseConnection(); aufrufe.

Ich steh ehrlich gesagt auf dem Schlauch und steh kurz davor zu denken, dass ich zu dumm für das Programmieren bin.

Mit freundlichen Grüßen

Sheldon

This post has been edited 1 times, last edit by "Sheldon" (Jun 27th 2011, 9:17pm)


2

Wednesday, June 29th 2011, 11:03am

databaseConnection ist eine Funktion, also musst du diese auch wie eine aufrufen.

so, z.B

C# Quellcode

1
conn = databaseConnection();


Du kannst nicht einfach auf Variablen innerhalb dieser Funktion zugreifen. Du verwechselst das wahrschl. mit einer Klasse ?!


Wenn du "SqlConnection conn" ausserhalb der Funktion verfügbar haben möchtest, dann musst du diesen Wert zurückgeben.

C# Quellcode

1
2
3
4
5
6
public static SqlConnection databaseConnection()
        {
            SqlConnection conn = new SqlConnection(); // Datenverbindung...
            conn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=[...]";
            return conn;
        }


Dann sieht das Endergebnis so aus:

C# Quellcode

1
2
3
conn = databaseConnection();
cmd.connection = conn;
conn.Open();



Das sind Verständnisprobleme. Das kann etwas mit dem Buch zu tun haben, aber oft ist es so, dass man das Buch durcharbeitet und alles versteht und wenn man dann selber ran muss, bekommt man große Probleme ... das ist auch normal, das wird mit der zunehmenden Praxis besser (ohne die man nicht lernen kann!)
Mit "zu dumm" hat das nichts zu tun. Wenn du trotz solcher Probleme immer noch Spaß hast und versuchst die Lösung zu finden ohne alles hinzuschmeißen, dann bist du genau richtig ;)

Sheldon

Unregistered

3

Wednesday, June 29th 2011, 3:55pm

Gut vielen Dank! Ich werde es gleich mal ausprobieren.

Ja so geht es mir im Moment auch. Ich hab das Buch jetzt 2 Mal durchgemacht und habe auch ziemlich alles verstanden, dass was ich nicht verstehe lese ich gern nochmal nach.
Aber sobald ich dann vor dem Code sitze, weiß ich nicht weiter. Ich weiß einfach nicht, wie ich das "gelernte" bzw gelesene umsetzen kann.

Ich versuch mein Bestes ^^

Sheldon

Similar threads

Social bookmarks