SqlDataReader Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bietet eine Möglichkeit zum Lesen eines Vorwärtsdatenstroms von Zeilen aus einer SQL Server-Datenbank. Diese Klasse kann nicht vererbt werden.
public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
type SqlDataReader = class
inherit DbDataReader
interface IDisposable
type SqlDataReader = class
inherit MarshalByRefObject
interface IEnumerable
interface IDataReader
interface IDisposable
interface IDataRecord
type SqlDataReader = class
inherit DbDataReader
interface IDataReader
interface IDisposable
interface IDataRecord
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
- Vererbung
- Vererbung
- Vererbung
- Implementiert
Beispiele
Im folgenden Beispiel wird ein SqlConnection, a SqlCommandund a SqlDataReader. Im Beispiel werden die Daten gelesen und in das Konsolenfenster geschrieben. Der Code schließt dann die SqlDataReader. Dies SqlConnection wird automatisch am Ende des using Codeblocks geschlossen.
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
ReadSingleRow((IDataRecord)reader);
}
// Call Close when done reading.
reader.Close();
}
}
private static void ReadSingleRow(IDataRecord dataRecord)
{
Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
Private Sub ReadOrderData(ByVal connectionString As String)
Dim queryString As String = _
"SELECT OrderID, CustomerID FROM dbo.Orders;"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
' Call Read before accessing data.
While reader.Read()
ReadSingleRow(CType(reader, IDataRecord))
End While
' Call Close when done reading.
reader.Close()
End Using
End Sub
Private Sub ReadSingleRow(ByVal record As IDataRecord)
Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub
Hinweise
Zum Erstellen eines SqlDataReaderObjekts müssen Sie die ExecuteReader Methode des SqlCommand Objekts aufrufen, anstatt direkt einen Konstruktor zu verwenden.
Während der Verwendung erfolgt, ist die SqlDataReader zugeordnete SqlConnection Aufgabe ausgelastet SqlDataReader, und es können keine anderen Vorgänge als das SqlConnection Schließen ausgeführt werden. Dies ist der Fall, bis die Close Methode der SqlDataReader Methode aufgerufen wird. Sie können z. B. erst nach dem Aufruf CloseAusgabeparameter abrufen.
Änderungen, die an einem Resultset durch einen anderen Prozess oder Thread vorgenommen wurden, während Daten gelesen werden, sind möglicherweise für den Benutzer der SqlDataReader. Das genaue Verhalten ist jedoch abhängig vom Timing.
IsClosed und RecordsAffected sind die einzigen Eigenschaften, die Sie nach dem SqlDataReader Schließen aufrufen können. Obwohl auf die RecordsAffected Eigenschaft während der SqlDataReader Vorhandenen zugegriffen werden kann, rufen Sie immer auf Close , bevor Sie den Wert zurückgeben, um einen genauen Rückgabewert RecordsAffected zu garantieren.
Bei Verwendung des sequenziellen Zugriffs (CommandBehavior.SequentialAccess) wird eine InvalidOperationException ausgelöst, wenn die SqlDataReader Position erweitert wird und ein anderer Lesevorgang in der vorherigen Spalte versucht wird.
Hinweis
Um eine optimale Leistung zu erzielen, SqlDataReader vermeiden Sie unnötige Objekte oder unnötige Kopien von Daten. Daher gibt es mehrere Aufrufe an Methoden, z GetValue . B. das Zurückgeben eines Verweises auf dasselbe Objekt. Seien Sie vorsichtig, wenn Sie den zugrunde liegenden Wert der von Methoden zurückgegebenen Objekte ändern, z GetValue. B. .
Eigenschaften
| Name | Beschreibung |
|---|---|
| Connection |
Ruft das SqlConnection zugeordnete mit der SqlDataReader. |
| Depth |
Ruft einen Wert ab, der die Tiefe der Schachtelung für die aktuelle Zeile angibt. |
| FieldCount |
Ruft die Anzahl der Spalten in der aktuellen Zeile ab. |
| HasRows |
Ruft einen Wert ab, der angibt, ob die SqlDataReader ein oder mehrere Zeilen enthält. |
| IsClosed |
Ruft einen booleschen Wert ab, der angibt, ob die angegebene SqlDataReader Instanz geschlossen wurde. |
| Item[Int32] |
Ruft den Wert der angegebenen Spalte im systemeigenen Format ab, wenn die Spalte Ordnungszahl angegeben ist. |
| Item[String] |
Ruft den Wert der angegebenen Spalte im systemeigenen Format ab, das den Spaltennamen enthält. |
| RecordsAffected |
Ruft die Anzahl der Zeilen geändert, eingefügt oder gelöscht durch Ausführung der Transact-SQL-Anweisung ab. |
| VisibleFieldCount |
Ruft die Anzahl der Felder in dem SqlDataReader nicht ausgeblendeten ab. |
Methoden
| Name | Beschreibung |
|---|---|
| Close() |
Schließt das SqlDataReader Objekt. |
| CreateObjRef(Type) |
Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird. (Geerbt von MarshalByRefObject) |
| Dispose() |
Gibt alle Ressourcen frei, die von der aktuellen Instanz der DbDataReader Klasse verwendet werden. (Geerbt von DbDataReader) |
| Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die von den DbDataReader verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei. (Geerbt von DbDataReader) |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetBoolean(Int32) |
Ruft den Wert der angegebenen Spalte als booleschen Wert ab. |
| GetByte(Int32) |
Ruft den Wert der angegebenen Spalte als Byte ab. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Liest einen Bytestrom aus dem angegebenen Spaltenoffset in den Puffer ein Array ab dem angegebenen Pufferoffset. |
| GetChar(Int32) |
Ruft den Wert der angegebenen Spalte als einzelnes Zeichen ab. |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
Liest einen Datenstrom von Zeichen aus dem angegebenen Spaltenoffset in den Puffer als Array ab dem angegebenen Pufferoffset. |
| GetData(Int32) |
Gibt einen IDataReader Wert für die angegebene Spalten-Ordnungszahl zurück. |
| GetData(Int32) |
Gibt einen geschachtelten Datenleser für die angeforderte Spalte zurück. (Geerbt von DbDataReader) |
| GetDataTypeName(Int32) |
Ruft eine Zeichenfolge ab, die den Datentyp der angegebenen Spalte darstellt. |
| GetDateTime(Int32) |
Ruft den Wert der angegebenen Spalte als DateTime Objekt ab. |
| GetDateTimeOffset(Int32) |
Ruft den Wert der angegebenen Spalte als DateTimeOffset Objekt ab. |
| GetDbDataReader(Int32) |
Gibt ein DbDataReader Objekt für die angeforderte Spalten-Ordnungszahl zurück, die mit einer anbieterspezifischen Implementierung überschrieben werden kann. (Geerbt von DbDataReader) |
| GetDecimal(Int32) |
Ruft den Wert der angegebenen Spalte als Decimal Objekt ab. |
| GetDouble(Int32) |
Ruft den Wert der angegebenen Spalte als Gleitkommazahl mit doppelter Genauigkeit ab. |
| GetEnumerator() |
Gibt einen IEnumerator Wert zurück, der durch die SqlDataReader. |
| GetFieldType(Int32) |
Ruft den Type Datentyp des Objekts ab. |
| GetFieldValue<T>(Int32) |
Ruft synchron den Wert der angegebenen Spalte als Typ ab. GetFieldValueAsync<T>(Int32, CancellationToken) ist die asynchrone Version dieser Methode. |
| GetFieldValueAsync<T>(Int32, CancellationToken) |
Ruft asynchron den Wert der angegebenen Spalte als Typ ab. GetFieldValue<T>(Int32) ist die synchrone Version dieser Methode. |
| GetFieldValueAsync<T>(Int32) |
Ruft asynchron den Wert der angegebenen Spalte als angeforderten Typ ab. (Geerbt von DbDataReader) |
| GetFloat(Int32) |
Ruft den Wert der angegebenen Spalte als Gleitkommazahl mit einfacher Genauigkeit ab. |
| GetGuid(Int32) |
Ruft den Wert der angegebenen Spalte als global eindeutigen Bezeichner (GUID) ab. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetInt16(Int32) |
Ruft den Wert der angegebenen Spalte als eine 16-Bit-ganzzahlige Vorzeichen ab. |
| GetInt32(Int32) |
Ruft den Wert der angegebenen Spalte als 32-Bit-ganzzahlige Vorzeichen ab. |
| GetInt64(Int32) |
Ruft den Wert der angegebenen Spalte als ganze 64-Bit-Ganzzahl ab. |
| GetLifetimeService() |
Veraltet.
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
| GetName(Int32) |
Ruft den Namen der angegebenen Spalte ab. |
| GetOrdinal(String) |
Ruft die Spalten-Ordnungszahl ab, wobei der Name der Spalte angegeben ist. |
| GetProviderSpecificFieldType(Int32) |
Ruft eine |
| GetProviderSpecificValue(Int32) |
Ruft eine |
| GetProviderSpecificValues(Object[]) |
Ruft ein Array von Objekten ab, die eine Darstellung der zugrunde liegenden anbieterspezifischen Werte sind. |
| GetSchemaTable() |
Gibt einen DataTable Wert zurück, der die Spaltenmetadaten der SqlDataReader. |
| GetSqlBinary(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlBinary. |
| GetSqlBoolean(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlBoolean. |
| GetSqlByte(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlByte. |
| GetSqlBytes(Int32) |
Ruft den Wert der angegebenen Spalte als SqlBytes. |
| GetSqlChars(Int32) |
Ruft den Wert der angegebenen Spalte als SqlChars. |
| GetSqlDateTime(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlDateTime. |
| GetSqlDecimal(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlDecimal. |
| GetSqlDouble(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlDouble. |
| GetSqlGuid(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlGuid. |
| GetSqlInt16(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlInt16. |
| GetSqlInt32(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlInt32. |
| GetSqlInt64(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlInt64. |
| GetSqlMoney(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlMoney. |
| GetSqlSingle(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlSingle. |
| GetSqlString(Int32) |
Ruft den Wert der angegebenen Spalte als ein SqlString. |
| GetSqlValue(Int32) |
Gibt den Datenwert in der angegebenen Spalte als SQL Server-Typ zurück. |
| GetSqlValues(Object[]) |
Füllt ein Array aus, das Object die Werte für alle Spalten im Datensatz enthält, ausgedrückt als SQL Server-Typen. |
| GetSqlXml(Int32) |
Ruft den Wert der angegebenen Spalte als XML-Wert ab. |
| GetStream(Int32) |
Ruft binär-, image-, varbinary-, UDT- und Variant-Datentypen als ein Stream. |
| GetString(Int32) |
Ruft den Wert der angegebenen Spalte als Zeichenfolge ab. |
| GetTextReader(Int32) |
Ruft Char-, NChar-, NText-, NVarChar-, Text-, varChar- und Variant-Datentypen als ein TextReader. |
| GetTimeSpan(Int32) |
Ruft den Wert der angegebenen Spalte als TimeSpan Objekt ab. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| GetValue(Int32) |
Ruft den Wert der angegebenen Spalte im systemeigenen Format ab. |
| GetValues(Object[]) |
Füllt ein Array von Objekten mit den Spaltenwerten der aktuellen Zeile auf. |
| GetXmlReader(Int32) |
Ruft Daten vom Typ XML als .XmlReader |
| InitializeLifetimeService() |
Veraltet.
Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern. (Geerbt von MarshalByRefObject) |
| IsCommandBehavior(CommandBehavior) |
Bestimmt, ob die angegebene CommandBehavior Übereinstimmung mit der SqlDataReader des . |
| IsDBNull(Int32) |
Ruft einen Wert ab, der angibt, ob die Spalte nicht vorhandene oder fehlende Werte enthält. |
| IsDBNullAsync(Int32, CancellationToken) |
Eine asynchrone Version von IsDBNull(Int32), die einen Wert abruft, der angibt, ob die Spalte nicht vorhandene oder fehlende Werte enthält. Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Befehlstimeout verstrichen ist. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet. |
| IsDBNullAsync(Int32) |
Ruft asynchron einen Wert ab, der angibt, ob die Spalte nicht vorhandene oder fehlende Werte enthält. (Geerbt von DbDataReader) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| MemberwiseClone(Boolean) |
Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekts. (Geerbt von MarshalByRefObject) |
| NextResult() |
Führt den Datenleser zum nächsten Ergebnis durch, wenn die Ergebnisse von Batch-Transact-SQL Anweisungen gelesen werden. |
| NextResultAsync() |
Wechselt den Leser asynchron zum nächsten Ergebnis, wenn die Ergebnisse einer Reihe von Anweisungen gelesen werden. (Geerbt von DbDataReader) |
| NextResultAsync(CancellationToken) |
Eine asynchrone Version von NextResult(), die den Datenleser zum nächsten Ergebnis führt, wenn die Ergebnisse von Batch-Transact-SQL Anweisungen gelesen werden. Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Befehlstimeout verstrichen ist. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet. |
| Read() |
Wechselt zum SqlDataReader nächsten Datensatz. |
| ReadAsync() |
Wechselt den Leser asynchron zum nächsten Datensatz in einem Resultset. (Geerbt von DbDataReader) |
| ReadAsync(CancellationToken) |
Eine asynchrone Version von Read(), die zum SqlDataReader nächsten Datensatz wechselt. Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Befehlstimeout verstrichen ist. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IDataReader.Close() |
Eine Beschreibung dieses Mitglieds finden Sie unter Close(). (Geerbt von DbDataReader) |
| IDataReader.GetSchemaTable() |
Eine Beschreibung dieses Mitglieds finden Sie unter GetSchemaTable(). (Geerbt von DbDataReader) |
| IDataRecord.GetData(Int32) |
Gibt einen IDataReader Wert für die angegebene Spalten-Ordnungszahl zurück. |
| IDataRecord.GetData(Int32) |
Eine Beschreibung dieses Mitglieds finden Sie unter GetData(Int32). (Geerbt von DbDataReader) |
| IDisposable.Dispose() |
Gibt alle Ressourcen frei, die vom Datenleser verwendet werden. |
| IEnumerable.GetEnumerator() |
Gibt einen Enumerator zurück, der zum Durchlaufen der Elementauflistung verwendet werden kann. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AsParallel(IEnumerable) |
Aktiviert die Parallelisierung einer Abfrage. |
| AsQueryable(IEnumerable) |
Wandelt eine IEnumerable in eine IQueryableum. |
| CanGetColumnSchema(DbDataReader) |
Ruft einen Wert ab, der angibt, ob ein DbDataReader Spaltenschema abgerufen werden kann. |
| Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um. |
| GetColumnSchema(DbDataReader) |
Ruft das Spaltenschema (DbColumn Auflistung) für ein DbDataReader. |
| OfType<TResult>(IEnumerable) |
Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ. |