SqlDataReader Klasse

Definition

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

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable, System::Data::Common::IDbColumnSchemaGenerator
public ref class SqlDataReader : System::Data::Common::DbDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable, System.Data.Common.IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDbColumnSchemaGenerator
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDbColumnSchemaGenerator
    interface IDataReader
    interface IDataRecord
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator, IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Vererbung
SqlDataReader
Implementiert

Beispiele

Im folgenden Beispiel werden ein SqlConnection, und SqlCommandein SqlDataReadererstellt. Im Beispiel werden die Daten gelesen und in das Konsolenfenster geschrieben. Der Code schließt dann die SqlDataReader. Wird SqlConnection automatisch am Ende des Codeblocks using geschlossen.

using Microsoft.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]));
    }

}

Hinweise

Um einen SqlDataReaderzu erstellen, müssen Sie die ExecuteReader -Methode des SqlCommand -Objekts aufrufen, anstatt direkt einen Konstruktor zu verwenden.

Während die SqlDataReader verwendet wird, ist die zugeordnete SqlConnection mit der Bereitstellung von SqlDataReaderbeschäftigt, und es können keine anderen Vorgänge als das SqlConnection Schließen ausgeführt werden. Dies ist der Fall, bis die Close -Methode von SqlDataReader aufgerufen wird. Sie können beispielsweise Erst nach dem Aufrufen Closevon Ausgabeparametern abrufen.

Während des Lesens von Daten von einem anderen Prozess oder Thread an einem Resultset vorgenommene Änderungen sind für den Benutzer von SqlDataReader möglicherweise sichtbar. Das genaue Verhalten ist jedoch zeitabhängig.

IsClosed und RecordsAffected sind die einzigen Eigenschaften, die nach dem Schließen von SqlDataReader aufgerufen werden können. Obwohl auf die RecordsAffected -Eigenschaft zugegriffen werden kann, solange SqlDataReader vorhanden ist, rufen Sie immer auf Close , bevor Sie den Wert von RecordsAffected zurückgeben, um einen genauen Rückgabewert zu gewährleisten.

Bei Verwendung des sequenziellen Zugriffs (CommandBehavior.SequentialAccess) wird ein InvalidOperationException ausgelöst, wenn die SqlDataReader Position erweitert ist und ein weiterer Lesevorgang für die vorherige Spalte versucht wird.

Hinweis

Um eine optimale Leistung zu erzielen, SqlDataReader vermeiden Sie das Erstellen unnötiger Objekte oder das Erstellen unnötiger Kopien von Daten. Daher geben mehrere Aufrufe von Methoden zurück, z GetValue . B. einen Verweis auf dasselbe Objekt. Seien Sie vorsichtig, wenn Sie den zugrunde liegenden Wert der Objekte ändern, die von Methoden wie GetValuezurückgegeben werden.

Eigenschaften

Connection

Ruft den SqlConnection ab, der dem SqlDataReader zugeordnet ist.

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 SqlDataReader eine oder mehrere Zeilen enthält.

IsClosed

Ruft einen booleschen Wert ab, der angibt, ob die angegebene SqlDataReader-Instanz geschlossen wurde.

Item[Int32]

Ruft bei angegebener Spaltenordnungszahl den Wert der angegebenen Spalte im systemeigenen Format ab.

Item[String]

Ruft bei angegebenem Spaltennamen den Wert der angegebenen Spalte im systemeigenen Format ab.

RecordsAffected

Ruft die Anzahl der durch die Ausführung der Transact-SQL-Anweisung geänderten, eingefügten oder gelöschten Zeilen ab.

SensitivityClassification

Ruft die SensitivityClassification Informationen mit ab SqlDataReader.

VisibleFieldCount

Ruft die Anzahl der nicht ausgeblendeten Felder im SqlDataReader ab.

Methoden

Close()

Schließt das SqlDataReader-Objekt.

Dispose(Boolean)

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

GetBoolean(Int32)

Ruft den Wert der angegebenen Spalte als booleschen Wert ab.

GetByte(Int32)

Ruft den Wert der angegebenen Spalte als ein Byte ab.

GetBytes(Int32, Int64, Byte[], Int32, Int32)

Liest einen Datenstrom von Bytes ab dem angegebenen Pufferoffset als Array aus dem angegebenen Spaltenoffset in den Puffer ein.

GetChar(Int32)

Ruft den Wert der angegebenen Spalte als Einzelzeichen ab.

GetChars(Int32, Int64, Char[], Int32, Int32)

Liest einen Datenstrom von Zeichen ab dem angegebenen Pufferoffset als Array aus dem angegebenen Spaltenoffset in den Puffer ab.

GetColumnSchema()

Ruft die schreibgeschützte Spaltenschemasammlung ab.

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.

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 zurück, der SqlDataReader durchläuft.

GetFieldType(Int32)

Ruft den Type ab, der den Datentyp des Objekts darstellt.

GetFieldValue<T>(Int32)

Ruft den Wert der angegebenen Spalte asynchron als ein Typ ab. GetFieldValueAsync<T>(Int32, CancellationToken) ist die asynchrone Version dieser Methode.

GetFieldValueAsync<T>(Int32, CancellationToken)

Ruft den Wert der angegebenen Spalte asynchron als ein Typ ab. GetFieldValue<T>(Int32) ist die synchrone Version dieser Methode.

GetFloat(Int32)

Ruft den Wert der angegebenen Spalte als Gleitkommazahl mit einfacher Genauigkeit ab.

GetGuid(Int32)

Ruft den Wert der angegebenen Spalte als GUID (Globally Unique Identifier) ab.

GetInt16(Int32)

Ruft den Wert der angegebenen Spalte als 16-Bit-Ganzzahl mit Vorzeichen ab.

GetInt32(Int32)

Ruft den Wert der angegebenen Spalte als ganze Zahl mit Vorzeichen und einer Länge von 32 Bit ab.

GetInt64(Int32)

Ruft den Wert der angegebenen Spalte als 64-Bit-Ganzzahl mit Vorzeichen ab.

GetName(Int32)

Ruft den Namen der angegebenen Spalte ab.

GetOrdinal(String)

Ruft bei angegebenem Spaltennamen die Ordnungszahl der Spalte ab.

GetProviderSpecificFieldType(Int32)

Ruft ein Object ab, das eine Darstellung des Feldtyps ist, der für den zugrunde liegenden Anbieter spezifisch ist.

GetProviderSpecificValue(Int32)

Ruft ein Object ab, das eine Darstellung des Werts ist, der für den zugrunde liegenden Anbieter spezifisch ist.

GetProviderSpecificValues(Object[])

Ruft ein Array von Objekten ab, die die Werte darstellen, die für den zugrunde liegenden Anbieter spezifisch sind.

GetSchemaTable()

Gibt eine DataTable zurück, die die Spaltenmetadaten des SqlDataReader beschreibt.

GetSqlBinary(Int32)

Ruft den Wert der angegebenen Spalte als SqlBinary ab.

GetSqlBoolean(Int32)

Ruft den Wert der angegebenen Spalte als SqlBoolean ab.

GetSqlByte(Int32)

Ruft den Wert der angegebenen Spalte als SqlByte ab.

GetSqlBytes(Int32)

Ruft den Wert der angegebenen Spalte als SqlBytes ab.

GetSqlChars(Int32)

Ruft den Wert der angegebenen Spalte als SqlChars ab.

GetSqlDateTime(Int32)

Ruft den Wert der angegebenen Spalte als SqlDateTime ab.

GetSqlDecimal(Int32)

Ruft den Wert der angegebenen Spalte als SqlDecimal ab.

GetSqlDouble(Int32)

Ruft den Wert der angegebenen Spalte als SqlDouble ab.

GetSqlGuid(Int32)

Ruft den Wert der angegebenen Spalte als SqlGuid ab.

GetSqlInt16(Int32)

Ruft den Wert der angegebenen Spalte als SqlInt16 ab.

GetSqlInt32(Int32)

Ruft den Wert der angegebenen Spalte als SqlInt32 ab.

GetSqlInt64(Int32)

Ruft den Wert der angegebenen Spalte als SqlInt64 ab.

GetSqlMoney(Int32)

Ruft den Wert der angegebenen Spalte als SqlMoney ab.

GetSqlSingle(Int32)

Ruft den Wert der angegebenen Spalte als SqlSingle ab.

GetSqlString(Int32)

Ruft den Wert der angegebenen Spalte als SqlString ab.

GetSqlValue(Int32)

Gibt den Datenwert in der angegebenen Spalte als SQL Server-Typ zurück.

GetSqlValues(Object[])

Füllt ein Array von Object, das die Werte aller Spalten im Datensatz als SQL Server-Typen enthält.

GetSqlXml(Int32)

Ruft den Wert der angegebenen Spalte als XML-Wert ab.

GetStream(Int32)

Ruft Binary-, Varbinary-, Image-, UDT- und Variant-Datentypen als Stream ab.

GetString(Int32)

Ruft den Wert der angegebenen Spalte als eine Zeichenfolge ab.

GetTextReader(Int32)

Ruft Char-, NChar-, NText-, NVarChar-, Text-, varChar- und Variant-Datentypen als TextReader ab.

GetTimeSpan(Int32)

Ruft den Wert der angegebenen Spalte als TimeSpan-Objekt ab.

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 ab.

IsCommandBehavior(CommandBehavior)

Bestimmt, ob das angegebene CommandBehavior zu dem von SqlDataReader passt.

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 Timeout des Befehls abläuft. Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

NextResult()

Setzt den Datenreader beim Lesen von Transact-SQL-Batchanweisungen auf das nächste Ergebnis.

NextResultAsync(CancellationToken)

Eine asynchrone Version von NextResult(), die den Datenleser beim Lesen der Ergebnisse von Transact-SQL-Batchanweisungen zum nächsten Ergebnis fortsetzt.

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 Aufgabenobjekt gemeldet.

Read()

Setzt den SqlDataReader auf den nächsten Datensatz.

ReadAsync(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 Aufgabenobjekt gemeldet.

Explizite Schnittstellenimplementierungen

IDataRecord.GetData(Int32)

Gibt einen IDataReader für die angegebene Spaltenordnungszahl zurück.

Gilt für: