verwendetes Datenbanksystem: MySQL
Hallo liebe mycsharp.de Team,
bin relativ neu dabei mit c# und versuch mich gerade daran Daten aus einer Tabelle zu holen.
Die komplette Liste in nen Array packen und dann ausgeben hab ich bereits hinbekommen.
Nun will ich aber nur ganz genau einen Wert aus der Datenbank, hab schon versucht ohne Schleife das zu machen.
Irgendwie funktioniert es einfach nicht. Bin schon seit Stunden dabei.
Würd mich freuen wenn mal jemand rüberschauen würde.
Sticht bestimmt ins Auge 😃
public string wert_lesen(string tabelle, string suchenach, string wo, string ist)
{
MySqlConnection connection = verbindung_herstellen();
MySqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT " + suchenach + " FROM klausur_maker." + tabelle + " WHERE " + wo + " = '" + ist + "';";
MySqlDataReader Reader;
connection.Open();
Reader = command.ExecuteReader();
string wert ="";
while (Reader.Read())
{
wert = Reader.GetString(0).ToString();
}
Reader.Close();
return wert;
}
Alle an die Methode übergebenen Werte sind gefüllt und müssten aus der Datenbank ein Ergebnis finden können.
Was mach ich falsch ?
Lg
Tobi
Hallo Tobi,
Erstmal solltest du dich mit den folgenden Links beschäftigen:
Gibt deine Sql Anweisung auch nur einen Wert zurück? Denn so wie du das machst gibt deine Methode nur die letzte Zeile deiner Sql Anweisung zurück und mehr nicht.
Träume nicht dein Leben sondern lebe deinen Traum.
Viele Grüße, David Teck
Hallo
Dafür gibt es:
wert = command.ExecuteScalar();
Gruss Lothi
Hallo Tobi,
wenn Deine SQL-Abfrage mehrere Zeilen ergibt welchen Wert willst Du dann ?
Mit
wert += Reader.GetString(0).ToString() + Environment.NewLine;
schreibst Du alle gefundenen Werte untereinander.
Statt alle Werte per Datareader zu lesen und in ein Array zu schreiben kannst Du auch direkt ein Dataset nehmen.
Beispiele : http://www.seven-c.de/files/datenbankenhowto.htm
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Vielen Dank ihr seit die Besten !!!
Mit ExecuteScalar klappts wunderbar !! Danke !!