[SOLVED] [DataGridView] Einzelne Datensätze in Tabelle eintragen
-
G'Day
Folgendes Problem:
Hab' eine MySql Datenbank und auf meiner C# Form eine DataGridView in der ich auch schon Spalten erstellt haben. Z.B. die Spalten IP,Application,DNS Name.
Mit dem MySql Connecter/.Net lese ich die Daten die ich benötige ein:cmd.CommandText="SELECT ip,application,name FROM device WHERE l_id=2";
(l_id ist ein Fremdschlüssel aus einer Tabelle die einen Standort angibt."
Nurn habe ich de ganzen Spaß eingelesen. Mit einer While-Schleife und dem Reader kann ich die Daten nun auch in Variablen einlesen bz. der DataGridView. Und da liegt bei mir der Hase im Pfeffer, ich weiss nicht wie ich das ausdrücken soll Programmcodetechnisch. Das er wenn ich schreibe "reader["ip"]" in Spalte IP in Zeile 1. Dann ließt er den rest in die anderen Spalten ein wenn er damit fertig ist ließ er die näcshte Zeile und schreibt sie rein und so weiter.
Ich hoffe das ich es einigermaßen verständlich erklären konnte.MfG Snowfey
-
Nein, leider nicht so wirklich -)
Der einfachste Weg zum Einlesen von Daten und Anzeigen in einem DataGridView ist das sogenannte "DataBinding", s. z.B. http://msdn.microsoft.com/de-de/library/fbk67b6z.aspx
Die wichtigen Methoden bzw Eigenschaften dazu sind:
SqlTableAdapter.Fill(...)
DataGridView.DataSource = dataTable;So brauchst du weder einzeln die Spalten und Zeilen einzulesen (das macht dann die Fill-Methode), noch die Werte einzeln dem DataGridView zuzuweisen (das macht dann die Zuweisung an 'DataSource').
Zusatz: Statt "Sql..." in dem MS Beispiel mußt du dann die entsprechenden MySql-Typen verwenden "MySql..."!
-
Ich hab gerade selber eine Lösung gefunden glaube ich, obwohl ich bezweifel das es nicht die optimale ist:
con.Open(); reader = cmd.ExecuteReader(); while (reader.Read()) { dgvServer.Rows.Add( reader["ip"], reader["application"], reader["name"]); } reader.Close(); con.Close();
EDIT:
Habe den Code ein paarmal getestet und es geht ganz gut mit dieser Lösung. Würde mich trotzdem interessieren ob ihr noch bessere oder optimiertere Lösungen kennt?