Teilen über


IDataRecord Schnittstelle

Definition

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

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Abgeleitet

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. Dies bietet eine Möglichkeit, einen oder mehrere Vorwärtsdatenströme von Resultsets zu lesen. Weitere Informationen zu DataReader Klassen finden Sie unter Abrufen von Daten mithilfe eines DataReader.

Eine Anwendung erstellt nicht direkt einen instance der IDataRecord Schnittstelle, sondern erstellt eine instance einer Klasse, die erbtIDataRecord. In der Regel erhalten Sie dazu eine DataReader über die ExecuteReader -Methode des Command -Objekts.

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

Anbieter, die einen DataReader implementieren, sind erforderlich, um Daten in CLR-Typen (Common Language Runtime) verfügbar zu machen. Typkoercion wird 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. In der folgenden Tabelle werden beispielsweise vorgeschlagene Zuordnungen von OLE DB-Datentypen zu CLR-Typen mit alternativen Typen in Klammern aufgeführt.

OLE DB-Typ CLR-Typ
DBTYPE_BOOL Int16
DBTYPE_BSTR Zeichenfolge
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 Objekt
DBTYPE_IUNKNOWN Objekt
DBTYPE_NULL DBNull.Value
DBTYPE_NUMERIC Decimal
DBTYPE_PROPVARIANT Objekt
DBTYPE_R4 Single
DBTYPE_R8 Double
DBTYPE_STR Zeichenfolge
DBTYPE_UDT Nicht unterstützt
DBTYPE_UI1 Byte (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (Dezimal)
DBTYPE_VARIANT Objekt
DBTYPE_VARNUMERIC Nicht unterstützt
DBTYPE_WSTR Zeichenfolge

Eigenschaften

FieldCount

Ruft die Anzahl der Spalten in der aktuellen Zeile ab.

Item[Int32]

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

Item[String]

Ruft die Spalte mit dem angegebenen Namen ab.

Methoden

GetBoolean(Int32)

Ruft den Wert der angegebenen Spalte als booleschen Wert ab.

GetByte(Int32)

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

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

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

GetChar(Int32)

Ruft den Zeichenwert der angegebenen Spalte ab.

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

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

GetData(Int32)

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

GetDataTypeName(Int32)

Ruft die Datentypinformationen für das angegebene Feld ab.

GetDateTime(Int32)

Ruft das Datum und die Uhrzeit des angegebenen Felds ab.

GetDecimal(Int32)

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

GetDouble(Int32)

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

GetFieldType(Int32)

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

GetFloat(Int32)

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

GetGuid(Int32)

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

GetInt16(Int32)

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

GetInt32(Int32)

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

GetInt64(Int32)

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

GetName(Int32)

Ruft den Namen des zu suchenden Felds ab.

GetOrdinal(String)

Gibt den Index des benannten Felds zurück.

GetString(Int32)

Ruft den Zeichenfolgenwert des angegebenen Felds ab.

GetValue(Int32)

Gibt den Wert des angegebenen Felds zurück.

GetValues(Object[])

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

IsDBNull(Int32)

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

Gilt für: