IDataReader Schnittstelle

Definition

Stellt ein Mittel zum Lesen eines oder mehrerer Vorwärtsdatenströme von Resultsets bereit, die durch Ausführen eines Befehls an einer Datenquelle abgerufen werden, 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 IDisposable
    interface IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
Public Interface IDataReader
Implements IDataRecord, IDisposable
Abgeleitet
Implementiert

Beispiele

Im folgenden Beispiel werden Instanzen der abgeleiteten Klassen, SqlConnection, , SqlCommandund SqlDataReader. Im Beispiel werden die Daten gelesen und in die Konsole geschrieben. Schließlich schließt das Beispiel den SqlDataReader, 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

Mit den IDataReader Schnittstellen kann eine geerbte Klasse eine DataReader Klasse implementieren, die ein Mittel zum Lesen eines oder mehrerer Vorwärtsdatenströme von Resultsets IDataRecord bietet. Weitere Informationen zu DataReader Klassen finden Sie unter Abrufen von Daten mithilfe eines DataReader.

Eine Anwendung erstellt keine Instanz der IDataReader Schnittstelle direkt, sondern erstellt eine Instanz einer Klasse, die erbt IDataReader.

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 an einem Resultset durch einen anderen Prozess oder Thread vorgenommen wurden, während Daten gelesen werden, sind möglicherweise für den Benutzer einer Klasse sichtbar, die eine IDataReader. Das genaue Verhalten ist jedoch sowohl vom Anbieter als auch vom Timing abhängig.

Hinweise für Ausführende

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

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

Eigenschaften

Name Beschreibung
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 Datenleser 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 Zeilen geändert, eingefügt oder gelöscht durch Ausführung der SQL-Anweisung ab.

Methoden

Name Beschreibung
Close()

Schließt das IDataReader Objekt.

Dispose()

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind.

(Geerbt von IDisposable)
GetBoolean(Int32)

Ruft den Wert der angegebenen Spalte als booleschen Wert ab.

(Geerbt von IDataRecord)
GetByte(Int32)

Ruft den 8-Bit-ganzzahligen Wert der angegebenen Spalte ab.

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

Liest einen Bytestrom aus dem angegebenen Spaltenoffset als Array, beginnend mit dem angegebenen Pufferoffset, in den Puffer.

(Geerbt von IDataRecord)
GetChar(Int32)

Ruft den Zeichenwert der angegebenen Spalte ab.

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

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

(Geerbt von IDataRecord)
GetData(Int32)

Gibt einen IDataReader Wert für die angegebene Spalten-Ordnungszahl zurück.

(Geerbt von IDataRecord)
GetDataTypeName(Int32)

Ruft die Datentypinformationen für das angegebene Feld ab.

(Geerbt von IDataRecord)
GetDateTime(Int32)

Ruft den Datums- und Uhrzeitdatenwert des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetDecimal(Int32)

Ruft den numerischen Wert mit fester Position des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetDouble(Int32)

Ruft die Gleitkommazahl mit doppelter Genauigkeit des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetFieldType(Int32)

Ruft die Type Informationen ab, die dem Typ der Object zurückgegeben werden.GetValue(Int32)

(Geerbt von IDataRecord)
GetFloat(Int32)

Ruft die Gleitkommazahl mit einfacher Genauigkeit des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetGuid(Int32)

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

(Geerbt von IDataRecord)
GetInt16(Int32)

Ruft den 16-Bit-ganzzahligen Wert des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetInt32(Int32)

Ruft den ganzzahligen 32-Bit-Wert des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetInt64(Int32)

Ruft den ganzzahligen 64-Bit-Wert des angegebenen Felds ab.

(Geerbt von IDataRecord)
GetName(Int32)

Ruft den Namen für das zu suchende Feld ab.

(Geerbt von IDataRecord)
GetOrdinal(String)

Gibt den Index des benannten Felds zurück.

(Geerbt von IDataRecord)
GetSchemaTable()

Gibt einen DataTable Wert zurück, der die Spaltenmetadaten der IDataReader.

Gibt zurück null , wenn der ausgeführte Befehl kein Resultset oder nach NextResult() Rückgaben zurückgegeben falsehat.

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

(Geerbt von IDataRecord)
IsDBNull(Int32)

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

(Geerbt von IDataRecord)
NextResult()

Führt den Datenleser zum nächsten Ergebnis durch, wenn die Ergebnisse von SQL-Anweisungen im Batch gelesen werden.

Read()

Wechselt zum IDataReader nächsten Datensatz.

Gilt für: