Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - MySQL Abfrageergebnis in Variable speichern
fab_se - Do 02.12.10 17:47
Titel: MySQL Abfrageergebnis in Variable speichern
Hallo Leute!
Ich habe folgendes Problem und hoffe ihr könnt mir helfen:
Ich will aus einer MySQL Datenbank die Anzahl der vorhandenen Datensätze in einer Tabelle auslesen und in einer Interger Variable speichern. Dazu habe ich bis jetzt folgenden Code geschrieben:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| string strVerbindung = "SERVER=localhost;" + "DATABASE=kontoverwaltung;" + "UID=root;";
MySqlConnection verbindung = new MySqlConnection(strVerbindung); verbindung.Open();
MySqlCommand zaehlen = verbindung.CreateCommand(); zaehlen.CommandText = "SELECT ID, COUNT(ID) from kunde"; MySqlDataReader reader; zaehlen.ExecuteReader(); |
Ich habe schon versucht einer Integer Variable wie folgt einen Wert zuzuweisen:
C#-Quelltext
1:
| int intAnzahl = reader.FieldCount(); |
In verschiedenen Code Beispielen habe ich gesehen, dass man die Tabelle auch Zeile für Zeile bzw. Feld für Feld durchgehen kann und dabei einen Zähler mit hochlaufen lassen kann, allerdings finde ich dieses Vorgehen umständlich und könnte mir vorstellen, dass sich dieses Problem auch einfacher lösen lässt. Hat jemand eine Idee?
Gruß Fabi
Moderiert von
Kha: Quote- durch C#-Tags ersetzt
Th69 - Do 02.12.10 17:53
Mit "FieldCount()" erhältst du die Anzahl der Spalten, nicht der Zeilen.
Bei einem DataReader geht es nur mittels einer Schleife, um an die Anzahl zu kommen.
Einfacher ist es jedoch direkt die Datenbank zu fragen:
Quelltext
1:
| select count(*) from Kunde |
und danach dann im Code
C#-Quelltext
1:
| int anzahl = (int)sqlCommand.ExecuteScalar(); |
Der Cast auf (int) ist notwendig, weil ExecuteScalar ein 'object' zurückliefert (wir wissen aber, daß bei count(*) eine Zahl zurückgeliefert wird ;-).
fab_se - Do 02.12.10 23:38
Erstmal Danke für deine Antwort.
Ich verstehe jedoch nicht was du damit meinst die Datenbank direkt zu fragen bzw. wie ich den SQL Befehl sonst einbauen soll. Denn in Zeile 9 steht ja schon drin:
C#-Quelltext
1:
| zaehlen.CommandText = "SELECT ID, COUNT(ID) from kunde"; |
Und was macht der Befehl Execute.Scalar() ?
Ich finde leider keine gute Dokumentation zum Thema MySQL und C#. Die meisten beschränken sich nämlich (leider) auf das aufbauen einer Verbindung und das Schreiben in die Datenbank, nicht jedoch das Auslesen. Kann mir da eventuell jemand was empfehlen?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!