Laden...

Nur einen einzelnen Wert aus der Datenbank holen

Erstellt von rollerueckwaerts vor 14 Jahren Letzter Beitrag vor 14 Jahren 3.197 Views
R
rollerueckwaerts Themenstarter:in
57 Beiträge seit 2010
vor 14 Jahren
Nur einen einzelnen Wert aus der Datenbank holen

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

1.457 Beiträge seit 2004
vor 14 Jahren

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.

328 Beiträge seit 2006
vor 14 Jahren

Ansonsten kannst du hier sehen, dass es auch noch ein LIMIT x Anweisung gibt, mit der du sagen kannst dass du maximal x anzahl an Datensätzen haben möchtest.

Hier ist außerdem noch ein weiterer Link zu parametrisierten Datenbankabfragen.

Träume nicht dein Leben sondern lebe deinen Traum.
Viele Grüße, David Teck

344 Beiträge seit 2006
vor 14 Jahren

Hallo

Dafür gibt es:


wert = command.ExecuteScalar();

Gruss Lothi

3.825 Beiträge seit 2006
vor 14 Jahren

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

R
rollerueckwaerts Themenstarter:in
57 Beiträge seit 2010
vor 14 Jahren

Vielen Dank ihr seit die Besten !!!

Mit ExecuteScalar klappts wunderbar !! Danke !!