Teilen über


IDataReader Schnittstelle

Definition

Ermöglicht das Lesen eines oder mehrerer Vorwärtsdatenströme von Resultsets, die durch Ausführen eines Befehls für eine Datenquelle abgerufen wurden, und wird von .NET-Datenanbietern implementiert, die auf relationale Datenbanken zugreifen.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
Abgeleitet
Implementiert

Beispiele

Im folgenden Beispiel werden Instanzen der abgeleiteten Klassen SqlConnection, SqlCommandund SqlDataReadererstellt. Im Beispiel werden die Daten gelesen und in die Konsole geschrieben. Schließlich schließt das Beispiel die SqlDataReader- und dann die SqlConnection.

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

Die IDataReader Schnittstellen und IDataRecord ermöglichen es einer erbenden Klasse, eine DataReader Klasse zu implementieren, die eine Möglichkeit zum Lesen eines oder mehrerer Forward-Only-Datenströme von Resultsets bietet. Weitere Informationen zu DataReader Klassen finden Sie unter Abrufen von Daten mithilfe eines DataReader.

Eine Anwendung erstellt nicht direkt einen instance der IDataReader Schnittstelle, sondern erstellt eine instance einer Klasse, die erbtIDataReader.

Klassen, die erben IDataReader , müssen die geerbten Member implementieren und in der Regel zusätzliche Member definieren, um anbieterspezifische Funktionen hinzuzufügen.

Änderungen, die von einem anderen Prozess oder Thread an einem Resultset vorgenommen werden, während Daten gelesen werden, können für den Benutzer einer Klasse sichtbar sein, die eine IDataReaderimplementiert. Das genaue Verhalten ist jedoch sowohl vom Anbieter als auch vom Zeitpunkt abhängig.

Hinweise für Ausführende

Um die Konsistenz zwischen .NET Framework Datenanbietern zu fördern, benennen Sie die erbende Klasse im Format Prv Command, wobei Prv das einheitliche Präfix ist, das allen Klassen in einem bestimmten .NET Framework-Datenanbieternamespace zugewiesen wird. Sql Beispielsweise ist das Präfix der SqlDataAdapter -Klasse im System.Data.SqlClient Namespace.

Benutzer erstellen keine instance einer DataReader Klasse direkt. Stattdessen erhalten sie die DataReader instance über die ExecuteReader -Methode des Command -Objekts. Daher sollten Sie Konstruktoren als intern markieren DataReader .

Eigenschaften

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.

(Geerbt von IDataRecord)
IsClosed

Ruft einen Wert ab, der angibt, ob der Datenreader geschlossen ist.

Item[Int32]

Ruft die Spalte ab, die sich am angegebenen Index befindet.

(Geerbt von IDataRecord)
Item[String]

Ruft die Spalte mit dem angegebenen Namen ab.

(Geerbt von IDataRecord)
RecordsAffected

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

Methoden

Close()

Schließt das IDataReader-Objekt.

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

(Geerbt von IDisposable)
GetBoolean(Int32)

Ruft den Wert der angegebenen Spalte als booleschen Wert ab.

(Geerbt von IDataRecord)
GetByte(Int32)

Ruft den 8-Bit-Ganzzahlwert ohne Vorzeichen der angegebenen Spalte ab.

(Geerbt von IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Liest einen Datenstrom aus dem angegebenen Spaltenoffset als Array in den Puffer, beginnend am angegebenen Pufferoffset.

(Geerbt von IDataRecord)
GetChar(Int32)

Ruft den Zeichenwert der angegebenen Spalte ab.

(Geerbt von IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

Liest einen Zeichendatenstrom aus dem angegebenen Spaltenoffset als Array in den Puffer, beginnend am angegebenen Pufferoffset.

(Geerbt von IDataRecord)
GetData(Int32)

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

(Geerbt von IDataRecord)
GetDataTypeName(Int32)

Ruft die Datentypinformationen für das angegebene Feld ab.

(Geerbt von IDataRecord)
GetDateTime(Int32)

Ruft das Datum und die Uhrzeit des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetDecimal(Int32)

Ruft den an fester Position befindlichen numerischen Wert des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetDouble(Int32)

Ruft den Wert des angegebenen Felds als Gleitkommazahl mit doppelter Genauigkeit ab.

(Geerbt von IDataRecord)
GetFieldType(Int32)

Ruft die Type-Informationen entsprechend dem Typ von Object ab, die von GetValue(Int32) zurückgegeben würden.

(Geerbt von IDataRecord)
GetFloat(Int32)

Ruft den Wert des angegebenen Felds als Gleitkommazahl mit einfacher Genauigkeit ab.

(Geerbt von IDataRecord)
GetGuid(Int32)

Gibt den GUID-Wert des angegebenen Felds zurück.

(Geerbt von IDataRecord)
GetInt16(Int32)

Ruft den 16-Bit-Ganzzahlwert mit Vorzeichen des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetInt32(Int32)

Ruft den 32-Bit-Ganzzahl-mit-Vorzeichen-Wert des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetInt64(Int32)

Ruft den 64-Bit-Ganzzahlwert mit Vorzeichen des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetName(Int32)

Ruft den Namen des zu suchenden Felds ab.

(Geerbt von IDataRecord)
GetOrdinal(String)

Gibt den Index des benannten Felds zurück.

(Geerbt von IDataRecord)
GetSchemaTable()

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

Gibt null zurück, wenn der ausgeführte Befehl kein Resultset zurückgegeben hat, oder nachdem NextResult() von false zurückgegeben wurde.

GetString(Int32)

Ruft den Zeichenfolgenwert des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetValue(Int32)

Gibt den Wert des angegebenen Felds zurück.

(Geerbt von IDataRecord)
GetValues(Object[])

Füllt ein Array von Objekten mit den Spaltenwerten des aktuellen Datensatzes.

(Geerbt von IDataRecord)
IsDBNull(Int32)

Gibt zurück, ob das angegebene Feld auf NULL festgelegt ist.

(Geerbt von IDataRecord)
NextResult()

Setzt den Datenleser beim Lesen der Ergebnisse von SQL-Anweisungen auf das nächste Ergebnis.

Read()

Setzt den IDataReader auf den nächsten Datensatz.

Gilt für: