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 2So 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).