Ich habe eine SQL Server 2008-Datenbank und arbeite im Backend daran. Ich arbeite an asp.net/C#
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
//how do I read strings here????
}
Ich weiß, dass der Leser Werte hat. Mein SQL-Befehl besteht darin, nur eine Spalte aus einer Tabelle auszuwählen. Die Spalte enthält NUR Zeichenfolgen. Ich möchte die Zeichenfolgen (Zeilen) im Reader einzeln lesen. Wie mache ich das?
Geben Sie den Namen des Spaltenbeginns ein, der von der Datenbank zurückgegeben wird, in der er sich
"ColumnName"
befindet. Wenn es sich um eine Zeichenfolge handelt, können Sie diese verwenden.ToString()
. Wenn es sich um einen anderen Typ handelt, müssen Sie ihn mit konvertierenSystem.Convert
.quelle
es wird funktionieren
quelle
toString()
ist nicht gültig sollte.ToString()
nur fyi seinFür ein einzelnes Ergebnis:
Für mehrere Ergebnisse:
quelle
Ich dachte, ich möchte meine Hilfsmethode für diejenigen teilen, die sie verwenden können:
Verwendung:
Die Hilfsmethode wird in einen beliebigen Wert umgewandelt. Wenn sie nicht umgewandelt werden kann oder der Datenbankwert NULL ist, ist das Ergebnis null.
quelle
reader.GetColumn<int>("M_ID");
Eigentlich habe ich selbst herausgefunden, dass ich das tun kann:
quelle
Trim()
wurde in der Frage nicht erwähnt und ist hier aber nicht in den anderen Antworten.Ich weiß, dass dies etwas alt ist, aber wenn Sie den Inhalt eines SqlDataReader in eine Klasse einlesen, ist dies sehr praktisch. Die Spaltennamen von Leser und Klasse sollten identisch sein
quelle
Ich würde behaupten , gegen Verwendung von
SqlDataReader
hier; ADO.NET hat viele Randfälle und Komplikationen, und meiner Erfahrung nach ist der meiste manuell geschriebene ADO.NET-Code auf mindestens eine Weise fehlerhaft (normalerweise subtil und kontextbezogen).Es gibt Tools, um dies zu vermeiden. In diesem Fall möchten Sie beispielsweise eine Spalte mit Zeichenfolgen lesen. Dapper macht das völlig schmerzlos:
Dapper befasst sich hier mit der gesamten Parametrisierung, Ausführung und Zeilenverarbeitung - und vielen anderen Details von ADO.NET. Das
<string>
kann durch ersetzt werden,<SomeType>
um ganze Zeilen zu Objekten zu materialisieren.quelle
Im einfachsten Fall, wenn Ihre Abfrage Spaltenname zurückgibt und eine Zeichenfolge enthält:
quelle
Ich habe eine Hilfsfunktion wie:
dann benutze ich es, um den String zu extrahieren:
quelle
Normalerweise lese ich Daten mit dem Datenleser auf diese Weise. habe gerade ein kleines Beispiel hinzugefügt.
quelle
Du musst
read
database column
hier sein. Sie können sich das folgende Code-Snippet ansehenquelle