Verständnisproblem mit Methode

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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.

    Quellcode

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


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

    Quellcode

    1. cmd.Connection = databaseConnection.conn; // ist Methode und im angegeben Kontext nicht gültig
    2. 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

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sheldon ()

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

    so, z.B

    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.

    Quellcode

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


    Dann sieht das Endergebnis so aus:

    Quellcode

    1. conn = databaseConnection();
    2. cmd.connection = conn;
    3. 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 ;)
  • 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