Wie bekommt man einen einfachen string aus einer Datenbank
Dem folgenden code funktioniert aber nicht. Es ist nur 1 Zeile in dieser Tabelle. Wie bekomme ich nur die Aussage, dass die sql zurückkehren würde?:
SqlConnection conn = new SqlConnection(connectionStringArg);
SqlCommand command = new SqlCommand("select applicationname from tbl_settings");
command.Connection = conn;
conn.Open();
string simpleValue = command.ExecuteReader()[0].ToString();
conn.Close();
return simpleValue;
Okay jeder helfen, wie Sie diese erreichen relativ einfache Aufgabe, wäre toll.
InformationsquelleAutor Exitos | 2011-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da gibt es nur ein einzelner Wert zurückgegeben wird, könnte man dies tun:
Wenn du mehr brauchst als die erste Spalte aus der ersten Zeile zurückgegeben, müssen Sie mit ExecuteReader(). Sehen driis' Antwort.
InformationsquelleAutor Odrade
Den DataReader nicht indiziert werden können wie die. Man braucht so etwas wie:
Die Allgemeine Idee ist es, vor dem Leser für jeden Datensatz (mit
Read
), dann Lesen Sie Werte aus der Zeile. Wie schon in einer anderen Antwort, wenn Sie weiß, es ist nur ein einziger Wert in der Ergebnismenge,command.ExecuteScalar()
gibt Ihnen genau das.InformationsquelleAutor driis
Müssen Sie rufen Sie die
Read
Methode auf ein DataReader zurückgegeben von ExecuteReader man die erste Zeile. So etwas wie dieses:InformationsquelleAutor Mark Wilkins
Würden Sie tun, z.B.
InformationsquelleAutor nos
Für eine einzelne Zeichenfolge, die Sie verwenden möchten ExecuteScalar um einen einzelnen Wert und dann versuchen zu casten zu einem string.
Von doc: Führt die Abfrage aus und gibt die erste Spalte der ersten Zeile in der Ergebnismenge der Anfrage zurück. Zusätzliche Spalten oder Zeilen werden ignoriert.
Beispiel:
string result = command.ExecuteScalar() as string;
Für kleine Sachen finde ich oft LINQ2SQL die am einfachsten einzurichten und zu verwenden. Dieses tutorial sollte, bekommen Sie und läuft in wenigen Minuten. Für größere Projekte LINQ2SQL wird als veraltet betrachtet, siehe diese Frage für Diskussion und alternativen.
InformationsquelleAutor Tedd Hansen
Überprüfen DataReader.Read() müssen Sie Sie aufrufen.
InformationsquelleAutor Incognito
InformationsquelleAutor Cuteboy_Max
InformationsquelleAutor morethanyell