Freigeben über


IDataRecord-Schnittstelle

Ermöglicht den Zugriff auf die Spaltenwerte in den einzelnen Zeilen für einen DataReader und wird durch .NET Framework-Datenprovider implementiert, die auf relationale Datenbanken zugreifen.

Namespace: System.Data
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public Interface IDataRecord
'Usage
Dim instance As IDataRecord
public interface IDataRecord
public interface class IDataRecord
public interface IDataRecord
public interface IDataRecord

Hinweise

Die IDataReader-Schnittstelle und die IDataRecord-Schnittstelle aktivieren eine erbende Klasse, um eine DataReader-Klasse zu implementieren. Dies bietet eine Möglichkeit, einen oder mehrere Vorwärtsstreams von Resultsets zu lesen. Weitere Informationen über DataReader-Klassen finden Sie unter Abrufen von Daten mit einem DataReader. Weitere Informationen über das Implementieren von .NET Framework-Datenanbietern finden Sie unter Implementing a .NET Framework Data Provider.

Eine Anwendung erstellt eine Instanz der IDataRecord-Schnittstelle nicht direkt, sondern erstellt eine Instanz einer Klasse, die IDataRecord erbt. In der Regel wird hierzu ein DataReader über die ExecuteReader-Methode des Command-Objekts abgerufen.

Klassen, die IDataRecord erben, müssen alle geerbten Member implementieren. Sie definieren i. d. R. zusätzliche Member, um anbieterspezifische Funktionen hinzuzufügen.

Provider, die einen DataReader implementieren, müssen Daten in Typen der Common Language Runtime (CLR) verfügbar machen. Die Typumwandlung ist für einige Typen definiert, die nicht in der CLR enthalten sind. Auf diese Werte kann als alternative Typen zugegriffen werden, die CLR-Typen entsprechen. Als Beispiel werden in der folgenden Tabelle vorgeschlagene Zuordnungen von OLE DB-Datentypen zu CLR-Typen aufgelistet. In der Spalte CLR-Typ werden außerdem alternative Typen in Klammern aufgeführt.

OLE DB-Typ

CLR-Typ

DBTYPE_BOOL

Int16

DBTYPE_BSTR

string

DBTYPE_BYTES

byte[]

DBTYPE_CY

Decimal

DBTYPE_DATE

DateTime

DBTYPE_DBDATE

DateTime

DBTYPE_DBTIME

DateTime

DBTYPE_DBTIMESTAMP

DateTime

DBTYPE_DECIMAL

Decimal

DBTYPE_EMPTY

NULL

DBTYPE_ERROR

ExternalException

DBTYPE_FILETIME

DateTime

DBTYPE_GUID

Guid

DBTYPE_HCHAPTER

nicht unterstützt

DBTYPE_I1

SByte

DBTYPE_I2

Int16

DBTYPE_I4

Int32

DBTYPE_I8

Int64

DBTYPE_IDISPATCH

object

DBTYPE_IUNKNOWN

object

DBTYPE_NULL

DBNull.Value

DBTYPE_NUMERIC

Decimal

DBTYPE_PROPVARIANT

object

DBTYPE_R4

Single

DBTYPE_R8

Double

DBTYPE_STR

string

DBTYPE_UDT

nicht unterstützt

DBTYPE_UI1

byte (Int16)

DBTYPE_UI2

UInt16 (Int32)

DBTYPE_UI4

UInt32 (Int64)

DBTYPE_UI8

UInt64 (Decimal)

DBTYPE_VARIANT

object

DBTYPE_VARNUMERIC

nicht unterstützt

DBTYPE_WSTR

string

Beispiel

Im folgenden Beispiel werden Instanzen der abgeleiteten Klassen SqlConnection, SqlCommand und SqlDataReader erstellt. Im Beispiel werden die Daten gelesen und auf der Konsole ausgegeben. Abschließend wird im Beispiel der SqlDataReader und danach die SqlConnection geschlossen.

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()
            Console.WriteLine(String.Format("{0}, {1}", _
                reader(0), reader(1)))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub
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())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }

        // Call Close when done reading.
        reader.Close();
    }
}

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

IDataRecord-Member
System.Data-Namespace