MySqlReader Ausgabe Sortieren und Variablen zuweißen.



  • Hallo

    Ich möchte über einen Mysqlreader mehrere Labels befüllen.

    Datenbank:

    ID Name Gruppe
    1 Horst 1
    2 Peter 1
    3 Klaus 1
    4 Jürgen 1
    5 Lisa 2
    6 Denise 2
    7 Anja 2

    So sieht die Datenbank aus als Beispiel.

    Ich frage jetzt mit folgendem Mysql Command die DB ab

    SELECT * FROM team WHERE Gruppe = "1";

    Wenn ich ja nun das Ergebnis in ein Label packe bekomme ich ja den letzen Eintrag den er gelesen hat in der DB. In diesem Fall Jürgen. Ich möchte aber auch Horst Klaus und Peter in einem Label haben. Wie kann ich aus dem Reader vorherige Einträge auslesen bzw in eine Variable Speichern um sie später zu nutzen.



  • Homiophat schrieb:

    Wenn ich ja nun das Ergebnis in ein Label packe bekomme ich ja den letzen Eintrag den er gelesen hat in der DB. In diesem Fall Jürgen.

    Aha.
    Wie sieht denn der Code aus mit dem du das da "reinpackst"?

    Homiophat schrieb:

    Ich möchte aber auch Horst Klaus und Peter in einem Label haben. Wie kann ich aus dem Reader vorherige Einträge auslesen bzw in eine Variable Speichern um sie später zu nutzen.

    "Einfach so".
    Auslesen und merken. Verstehe die Frage nicht.



  • Okay hier mein Code ich glaube das wäre am einfachsten.
    Die Variable localAccNr beziehe ich aus einer anderen Methode. Aus dem grund ist sie hier nicht gelistet. Das ist eine einfache Zahl die beim Login mit Benutzer und Passwort in der Datenbank steht.

    Im letzen Teil des Codes schreibe ich in das Label char1_server1 den text den ich mit dem Reader herrausgeholt habe. Nur es gibt mehrere Einträge mit der selben localAccNr.

    //Verweis auf die Properties
                string server = Properties.Settings.Default.MysqlServer;
                string port = Properties.Settings.Default.MysqlPort;
                string user = Properties.Settings.Default.MysqlUser;
                string userpassword = Properties.Settings.Default.MysqlPassword;
                string db = Properties.Settings.Default.MysqlDatabase;
    
                //Umwandlung von C# Variable in Mysql Variable
                MySqlCommand command = new MySqlCommand();
                command.Parameters.AddWithValue("@server", server);
                command.Parameters.AddWithValue("@port", port);
                command.Parameters.AddWithValue("@user", user);
                command.Parameters.AddWithValue("@password", userpassword);
                command.Parameters.AddWithValue("@database", db);
    
                //Connection zu Mysql Server
                string myConnectionString = "Server=" + server + ";Port=" + port + ";Uid=" + user + ";Pwd=" + userpassword + ";database=" + db + ";";
                MySqlConnection connection = new MySqlConnection(myConnectionString);
    
                MySqlCommand cmd = new MySqlCommand("SELECT * FROM characters WHERE acct = " + localAccNr + ";");
                cmd.Connection = connection;
                connection.Open();
    
                MySqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    char1_server1.Text = reader[2].ToString();
    
                }
                connection.Close();
            }
    


  • Mit

    char1_server1.Text = reader[2].ToString();
    

    schreibst (bzw. überschreibst) du ja jeden ausgelesenen Wert in das eine Label.

    Wenn du eine Liste anzeigen möchtest, dann nimm am besten gleich ein Listen- bzw. Tabellencontrol (z.B. ListBox, ListView, DataGridView) - und les dich mal in "DataBinding" ein (Stichwort: DataSource).


Log in to reply