(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

SqlDataReader-Klasse

Stellt ein Verfahren zum Lesen eines Vorwärtsstreams von Zeilen aus einer SQL Server-Datenbank bereit. Diese Klasse kann nicht vererbt werden.

Namespace:  System.Data.SqlClient
Assembly:  System.Data (in System.Data.dll)

public class SqlDataReader : DbDataReader, 
	IDataReader, IDisposable, IDataRecord

Der SqlDataReader-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Geschützte EigenschaftConnectionRuft den SqlConnection ab, der dem SqlDataReader zugeordnet ist.
Öffentliche EigenschaftDepthRuft einen Wert ab, der die Tiefe der Schachtelung für die aktuelle Zeile angibt. (Überschreibt DbDataReader.Depth.)
Öffentliche EigenschaftFieldCountRuft die Anzahl der Spalten in der aktuellen Zeile ab. (Überschreibt DbDataReader.FieldCount.)
Öffentliche EigenschaftHasRowsRuft einen Wert ab, der angibt, ob SqlDataReader eine oder mehrere Zeilen enthält. (Überschreibt DbDataReader.HasRows.)
Öffentliche EigenschaftIsClosedRuft einen booleschen Wert ab, der angibt, ob die angegebene SqlDataReader-Instanz geschlossen wurde. (Überschreibt DbDataReader.IsClosed.)
Öffentliche EigenschaftItem[Int32]Ruft bei angegebener Spaltenordnungszahl den Wert der angegebenen Spalte im systemeigenen Format ab. (Überschreibt DbDataReader.Item.)
Öffentliche EigenschaftItem[String]Ruft bei angegebenem Spaltennamen den Wert der angegebenen Spalte im systemeigenen Format ab. (Überschreibt DbDataReader.Item.)
Öffentliche EigenschaftRecordsAffectedRuft die Anzahl der durch die Ausführung der Transact-SQL-Anweisung geänderten, eingefügten oder gelöschten Zeilen ab. (Überschreibt DbDataReader.RecordsAffected.)
Öffentliche EigenschaftVisibleFieldCountRuft die Anzahl der nicht ausgeblendeten Felder im SqlDataReader ab. (Überschreibt DbDataReader.VisibleFieldCount.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeCloseSchließt das SqlDataReader-Objekt. (Überschreibt DbDataReader.Close().)
Öffentliche MethodeCreateObjRefErstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Von MarshalByRefObject geerbt.)
Öffentliche MethodeDispose()Gibt alle von der aktuellen Instanz der DbDataReader-Klasse verwendeten Ressourcen frei. (Von DbDataReader geerbt.)
Geschützte MethodeDispose(Boolean)Gibt die vom DbDataReader verwendeten verwalteten Ressourcen und optional auch die nicht verwalteten Ressourcen frei. (Von DbDataReader geerbt.)
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGetBooleanRuft den Wert der angegebenen Spalte als booleschen Wert ab. (Überschreibt DbDataReader.GetBoolean(Int32).)
Öffentliche MethodeGetByteRuft den Wert der angegebenen Spalte als ein Byte ab. (Überschreibt DbDataReader.GetByte(Int32).)
Öffentliche MethodeGetBytesLiest beginnend am angegebenen Pufferoffset einen Stream von Bytes aus dem angegebenen Spaltenoffset in den Puffer eines Arrays. (Überschreibt DbDataReader.GetBytes(Int32, Int64, Byte[], Int32, Int32).)
Öffentliche MethodeGetCharRuft den Wert der angegebenen Spalte als ein einzelnes Zeichen ab. (Überschreibt DbDataReader.GetChar(Int32).)
Öffentliche MethodeGetCharsLiest beginnend am angegebenen Pufferoffset einen Stream von Zeichen aus dem angegebenen Spaltenoffset in den Puffer eines Arrays. (Überschreibt DbDataReader.GetChars(Int32, Int64, Char[], Int32, Int32).)
Öffentliche MethodeGetDataGibt ein DbDataReader-Objekt für die angeforderte Spaltenordnungszahl zurück. (Von DbDataReader geerbt.)
Öffentliche MethodeGetDataTypeNameRuft eine Zeichenfolge ab, die den Datentyp der angegebenen Spalte darstellt. (Überschreibt DbDataReader.GetDataTypeName(Int32).)
Öffentliche MethodeGetDateTimeRuft den Wert der angegebenen Spalte als DateTime-Objekt ab. (Überschreibt DbDataReader.GetDateTime(Int32).)
Öffentliche MethodeGetDateTimeOffsetRuft den Wert der angegebenen Spalte als DateTimeOffset-Objekt ab.
Geschützte MethodeGetDbDataReaderGibt ein DbDataReader-Objekt für die angeforderte Spaltenordnungszahl zurück, das mit einer anbieterspezifischen Implementierung überschrieben werden kann. (Von DbDataReader geerbt.)
Öffentliche MethodeGetDecimalRuft den Wert der angegebenen Spalte als Decimal-Objekt ab. (Überschreibt DbDataReader.GetDecimal(Int32).)
Öffentliche MethodeGetDoubleRuft den Wert der angegebenen Spalte als Gleitkommazahl mit doppelter Genauigkeit ab. (Überschreibt DbDataReader.GetDouble(Int32).)
Öffentliche MethodeGetEnumeratorGibt einen IEnumerator zurück, der den SqlDataReader durchläuft. (Überschreibt DbDataReader.GetEnumerator().)
Öffentliche MethodeGetFieldTypeRuft den Type ab, der den Datentyp des Objekts darstellt. (Überschreibt DbDataReader.GetFieldType(Int32).)
Öffentliche MethodeGetFieldValue<T>Ruft den Wert der angegebenen Spalte asynchron als ein Typ ab. GetFieldValueAsync ist die asynchrone Version dieser Methode. (Überschreibt DbDataReader.GetFieldValue<T>(Int32).)
Öffentliche MethodeGetFieldValueAsync<T>(Int32)Ruft den Wert der angegebenen Spalte asynchron als ein Typ ab. (Von DbDataReader geerbt.)
Öffentliche MethodeGetFieldValueAsync<T>(Int32, CancellationToken)Ruft den Wert der angegebenen Spalte asynchron als ein Typ ab. GetFieldValue<T> ist die synchrone Version dieser Methode. (Überschreibt DbDataReader.GetFieldValueAsync<T>(Int32, CancellationToken).)
Öffentliche MethodeGetFloatRuft den Wert der angegebenen Spalte als Gleitkommazahl mit einfacher Genauigkeit ab. (Überschreibt DbDataReader.GetFloat(Int32).)
Öffentliche MethodeGetGuidRuft den Wert der angegebenen Spalte als global eindeutigen Bezeichner (Globally Unique Identifier, GUID) ab. (Überschreibt DbDataReader.GetGuid(Int32).)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetInt16Ruft den Wert der angegebenen Spalte als 16-Bit-Ganzzahl mit Vorzeichen ab. (Überschreibt DbDataReader.GetInt16(Int32).)
Öffentliche MethodeGetInt32Ruft den Wert der angegebenen Spalte als 32-Bit-Ganzzahl mit Vorzeichen ab. (Überschreibt DbDataReader.GetInt32(Int32).)
Öffentliche MethodeGetInt64Ruft den Wert der angegebenen Spalte als 64-Bit-Ganzzahl mit Vorzeichen ab. (Überschreibt DbDataReader.GetInt64(Int32).)
Öffentliche MethodeGetLifetimeServiceRuft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Von MarshalByRefObject geerbt.)
Öffentliche MethodeGetNameRuft den Namen der angegebenen Spalte ab. (Überschreibt DbDataReader.GetName(Int32).)
Öffentliche MethodeGetOrdinalRuft bei angegebenem Spaltennamen die Ordnungszahl der Spalte ab. (Überschreibt DbDataReader.GetOrdinal(String).)
Öffentliche MethodeGetProviderSpecificFieldTypeRuft ein Object ab, das eine Darstellung des Feldtyps ist, der für den zugrunde liegenden Anbieter spezifisch ist. (Überschreibt DbDataReader.GetProviderSpecificFieldType(Int32).)
Öffentliche MethodeGetProviderSpecificValueRuft ein Object ab, das eine Darstellung des Werts ist, der für den zugrunde liegenden Anbieter spezifisch ist. (Überschreibt DbDataReader.GetProviderSpecificValue(Int32).)
Öffentliche MethodeGetProviderSpecificValuesRuft ein Array von Objekten ab, die die Werte darstellen, die für den zugrunde liegenden Anbieter spezifisch sind. (Überschreibt DbDataReader.GetProviderSpecificValues(Object[]).)
Öffentliche MethodeGetSchemaTableGibt eine DataTable zurück, die die Spaltenmetadaten von SqlDataReader beschreibt. (Überschreibt DbDataReader.GetSchemaTable().)
Öffentliche MethodeGetSqlBinaryRuft den Wert der angegebenen Spalte als SqlBinary ab.
Öffentliche MethodeGetSqlBooleanRuft den Wert der angegebenen Spalte als SqlBoolean ab.
Öffentliche MethodeGetSqlByteRuft den Wert der angegebenen Spalte als SqlByte ab.
Öffentliche MethodeGetSqlBytesRuft den Wert der angegebenen Spalte als SqlBytes ab.
Öffentliche MethodeGetSqlCharsRuft den Wert der angegebenen Spalte als SqlChars ab.
Öffentliche MethodeGetSqlDateTimeRuft den Wert der angegebenen Spalte als SqlDateTime ab.
Öffentliche MethodeGetSqlDecimalRuft den Wert der angegebenen Spalte als SqlDecimal ab.
Öffentliche MethodeGetSqlDoubleRuft den Wert der angegebenen Spalte als SqlDouble ab.
Öffentliche MethodeGetSqlGuidRuft den Wert der angegebenen Spalte als SqlGuid ab.
Öffentliche MethodeGetSqlInt16Ruft den Wert der angegebenen Spalte als SqlInt16 ab.
Öffentliche MethodeGetSqlInt32Ruft den Wert der angegebenen Spalte als SqlInt32 ab.
Öffentliche MethodeGetSqlInt64Ruft den Wert der angegebenen Spalte als SqlInt64 ab.
Öffentliche MethodeGetSqlMoneyRuft den Wert der angegebenen Spalte als SqlMoney ab.
Öffentliche MethodeGetSqlSingleRuft den Wert der angegebenen Spalte als SqlSingle ab.
Öffentliche MethodeGetSqlStringRuft den Wert der angegebenen Spalte als SqlString ab.
Öffentliche MethodeGetSqlValueGibt den Datenwert in der angegebenen Spalte als SQL Server-Typ zurück.
Öffentliche MethodeGetSqlValuesFüllt ein Array von Object, das die Werte aller Spalten im Datensatz als SQL Server-Typen enthält.
Öffentliche MethodeGetSqlXmlRuft den Wert der angegebenen Spalte als XML-Wert ab.
Öffentliche MethodeGetStreamRuft Binary-, Varbinary-, Image-, UDT- und Variant-Datentypen als Stream ab. (Überschreibt DbDataReader.GetStream(Int32).)
Öffentliche MethodeGetStringRuft den Wert der angegebenen Spalte als eine Zeichenfolge ab. (Überschreibt DbDataReader.GetString(Int32).)
Öffentliche MethodeGetTextReaderRuft Char-, NChar-, NText-, NVarChar-, Text-, varChar- und Variant-Datentypen als TextReader ab. (Überschreibt DbDataReader.GetTextReader(Int32).)
Öffentliche MethodeGetTimeSpanRuft den Wert der angegebenen Spalte als TimeSpan-Objekt ab.
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeGetValueRuft den Wert der angegebenen Spalte im systemeigenen Format ab. (Überschreibt DbDataReader.GetValue(Int32).)
Öffentliche MethodeGetValuesFüllt ein Array von Objekten mit den Spaltenwerten der aktuellen Zeile auf. (Überschreibt DbDataReader.GetValues(Object[]).)
Öffentliche MethodeGetXmlReaderRuft Daten vom Typ XML als XmlReader ab.
Öffentliche MethodeInitializeLifetimeServiceRuft ein Lebensdauerdienstobjekt ab, mit dem die Lebensdauerrichtlinien für diese Instanz gesteuert werden können. (Von MarshalByRefObject geerbt.)
Geschützte MethodeIsCommandBehaviorBestimmt, ob das angegebene CommandBehavior zu dem von SqlDataReader passt.
Öffentliche MethodeIsDBNullRuft einen Wert ab, der angibt, ob die Spalte nicht vorhandene oder fehlende Werte enthält. (Überschreibt DbDataReader.IsDBNull(Int32).)
Öffentliche MethodeIsDBNullAsync(Int32)Eine asynchrone Version von IsDBNull, die einen Wert abruft, der angibt, ob die Spalte nicht vorhandene oder fehlende Werte enthält. (Von DbDataReader geerbt.)
Öffentliche MethodeIsDBNullAsync(Int32, CancellationToken)Eine asynchrone Version von IsDBNull, 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 Timeout des Befehls abläuft. Ausnahmen werden über das zurückgegebene Taskobjekt gemeldet. (Überschreibt DbDataReader.IsDBNullAsync(Int32, CancellationToken).)
Geschützte MethodeMemberwiseClone()Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte MethodeMemberwiseClone(Boolean)Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Von MarshalByRefObject geerbt.)
Öffentliche MethodeNextResultSetzt den Datenreader beim Lesen von Transact-SQL-Batchanweisungen auf das nächste Ergebnis. (Überschreibt DbDataReader.NextResult().)
Öffentliche MethodeNextResultAsync()Eine asynchrone Version von NextResult, die den Reader beim Lesen der Ergebnisse von Batchanweisungen auf das nächste Ergebnis setzt.Ruft NextResultAsync mit CancellationToken.None auf. (Von DbDataReader geerbt.)
Öffentliche MethodeNextResultAsync(CancellationToken)Eine asynchrone Version von NextResult, die den Datenreader beim Lesen der Ergebnisse von Transact-SQL-Batchanweisungen auf das nächste Ergebnis setzt.Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Timeout des Befehls abläuft. Ausnahmen werden über das zurückgegebene Taskobjekt gemeldet. (Überschreibt DbDataReader.NextResultAsync(CancellationToken).)
Öffentliche MethodeReadSetzt den SqlDataReader auf den nächsten Datensatz. (Überschreibt DbDataReader.Read().)
Öffentliche MethodeReadAsync()Eine asynchrone Version von Read, die den Reader auf den nächsten Datensatz in einem Resultset erhöht. Diese Methode ruft ReadAsync mit CancellationToken.None auf. (Von DbDataReader geerbt.)
Öffentliche MethodeReadAsync(CancellationToken)Eine asynchrone Version von Read, die den SqlDataReader auf den nächsten Datensatz wechselt.Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Timeout des Befehls abläuft. Ausnahmen werden über das zurückgegebene Taskobjekt gemeldet. (Überschreibt DbDataReader.ReadAsync(CancellationToken).)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate MethodeIDataRecord.GetDataGibt ein IDataReader für die angegebene Ordnungszahl der Spalte.
Zum Seitenanfang

Anstelle der direkten Verwendung eines Konstruktors müssen Sie zum Erstellen eines SqlDataReader die ExecuteReader-Methode des SqlCommand-Objekts aufrufen.

Während der Verwendung des SqlDataReader ist die zugeordnete SqlConnection durch den Informationsfluss für den SqlDataReader belegt, sodass an der SqlConnection keine anderen Operationen ausgeführt werden können, außer diese zu schließen. Dies gilt solange, bis die Close-Methode von SqlDataReader aufgerufen wird. Sie können z. B. keine Ausgabeparameter abrufen, bis Sie Close aufgerufen haben.

Änderungen an einem Resultset, die während des Lesens der Daten durch einen anderen Prozess oder Thread vorgenommen werden, sind für Benutzer des SqlDataReader möglicherweise sichtbar. Das genaue Verhalten ist jedoch zeitabhängig.

Die IsClosed-Eigenschaft und die RecordsAffected-Eigenschaft sind die einzigen Eigenschaften, die nach dem Schließen von SqlDataReader aufgerufen werden können. Obwohl jederzeit auf die RecordsAffected-Eigenschaft zugegriffen werden kann, solange der SqlDataReader vorhanden ist, sollten Sie immer zuerst Close aufrufen, bevor der Wert von RecordsAffected zurückgegeben wird, um einen korrekten Rückgabewert zu erhalten.

Wenn von sequenziellen Zugriff ([CommandBehavior.SequentialAccess]) verwendet werden, wird InvalidOperationException ausgelöst, wenn die Position SqlDataReader gewechselt ist und ein anderer Lesevorgang auf der vorherigen Spalte versucht wird.

HinweisHinweis

SqlDataReader vermeidet das Erstellen nicht erforderlicher Objekte oder unnötiger Kopien von Daten, um eine optimale Leistung zu erzielen. Daher ergeben mehrere Aufrufe von Methoden wie GetValue einen Verweis auf das gleiche Objekt. Gehen Sie beim Ändern des zugrunde liegenden Werts der Objekte, die durch Methoden wie GetValue zurückgegeben werden, mit Bedacht vor.

Im folgenden Beispiel werden eine SqlConnection, ein SqlCommand und ein SqlDataReader erstellt. Im Beispiel werden die Daten gelesen und im Konsolenfenster ausgegeben. Danach wird der SqlDataReader geschlossen. Der SqlConnection wird am Ende des using-Codeblocks automatisch geschlossen.


using System;
using System.Data;
using System.Data.SqlClient;


class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadOrderData(str);
    }

    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 record)
    {
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[1]));
    }

}


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft