IDataRecord IDataRecord IDataRecord IDataRecord Interface

Definition

Ermöglicht den Zugriff auf die Spaltenwerte in den einzelnen Zeilen für einen DataReader, und wird von .NET Framework-Datenanbietern implementiert, die auf relationale Datenbanken zugreifen.Provides access to the column values within each row for a DataReader, and is implemented by .NET Framework data providers that access relational databases.

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

Beispiele

Das folgende Beispiel erstellt Instanzen der abgeleiteten Klassen, SqlConnection SqlCommand, und SqlDataReader.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. Im Beispiel werden die Daten gelesen und in die Konsole geschrieben.The example reads through the data, writing it out to the console. Schließlich schließt das Beispiel die SqlDataReaderund dann das. SqlConnectionFinally, the example closes the SqlDataReader, and then the SqlConnection.

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

}
Option Explicit On
Option Strict On

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub

    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

End Module

Hinweise

Die IDataReader - IDataRecord und-Schnittstellen ermöglichen es einer erbenden DataReader Klasse, eine Klasse zu implementieren.The IDataReader and IDataRecord interfaces enable an inheriting class to implement a DataReader class. Dies bietet eine Möglichkeit zum Lesen eines oder mehrerer vorwärts Ströme von Resultsets.This provides a way of reading one or more forward-only streams of result sets. Weitere Informationen zu- DataReader Klassen finden Sie unter Abrufen von Daten mit einem DataReader.For more information about DataReader classes, see Retrieving Data Using a DataReader.

Eine Anwendung erstellt nicht direkt eine Instanz der IDataRecord Schnittstelle, sondern erstellt eine Instanz einer Klasse, die erbt. IDataRecordAn application does not create an instance of the IDataRecord interface directly, but creates an instance of a class that inherits IDataRecord. Dies geschieht in der Regel, indem DataReader Sie über die ExecuteReader -Methode des Command -Objekts abrufen.Typically, you do this by obtaining a DataReader through the ExecuteReader method of the Command object.

Klassen, die IDataRecord erben, müssen alle geerbten Member implementieren und in der Regel zusätzliche Elemente definieren, um anbieterspezifische Funktionen hinzuzufügen.Classes that inherit IDataRecord must implement all inherited members, and typically define additional members to add provider-specific functionality.

Anbieter, DataReader die implementieren, müssen Daten in Common Language Runtime (CLR)-Typen verfügbar machen.Providers implementing a DataReader are required to expose data in common language runtime (CLR) types. Typumwandlung ist für einige Typen definiert, die nicht in der CLR enthalten sind.Type coercion is defined for some types not included in the CLR. Auf diese Werte kann als alternativer Typ zugegriffen werden, der CLR-Typen entspricht.These values may be accessed as alternative types that comply with CLR types. In der folgenden Tabelle werden beispielsweise vorgeschlagene Zuordnungen von OLE DB-Datentypen zu CLR-Typen und alternativen Typen in Klammern aufgelistet.As an example, the following table lists suggested mappings from OLE DB data types to CLR types, with alternative types in parentheses.

OLE DB-TypOLE DB type CLR-TypCLR type
DBTYPE_BOOLDBTYPE_BOOL Int16Int16
DBTYPE_BSTRDBTYPE_BSTR stringstring
DBTYPE_BYTESDBTYPE_BYTES byte[]byte[]
DBTYPE_CYDBTYPE_CY DecimalDecimal
DBTYPE_DATEDBTYPE_DATE DateTimeDateTime
DBTYPE_DBDATEDBTYPE_DBDATE DateTimeDateTime
DBTYPE_DBTIMEDBTYPE_DBTIME DateTimeDateTime
DBTYPE_DBTIMESTAMPDBTYPE_DBTIMESTAMP DateTimeDateTime
DBTYPE_DECIMALDBTYPE_DECIMAL DecimalDecimal
DBTYPE_EMPTYDBTYPE_EMPTY NULLnull
DBTYPE_ERRORDBTYPE_ERROR ExternalExceptionExternalException
DBTYPE_FILETIMEDBTYPE_FILETIME DateTimeDateTime
DBTYPE_GUIDDBTYPE_GUID GUIDGuid
DBTYPE_HCHAPTERDBTYPE_HCHAPTER wird nicht unterstütztnot supported
DBTYPE_I1DBTYPE_I1 SByteSByte
DBTYPE_I2DBTYPE_I2 Int16Int16
DBTYPE_I4DBTYPE_I4 Int32Int32
DBTYPE_I8DBTYPE_I8 Int64Int64
DBTYPE_IDISPATCHDBTYPE_IDISPATCH Objektobject
DBTYPE_IUNKNOWNDBTYPE_IUNKNOWN Objektobject
DBTYPE_NULLDBTYPE_NULL DBNull.ValueDBNull.Value
DBTYPE_NUMERICDBTYPE_NUMERIC DecimalDecimal
DBTYPE_PROPVARIANTDBTYPE_PROPVARIANT Objektobject
DBTYPE_R4DBTYPE_R4 SingleSingle
DBTYPE_R8DBTYPE_R8 DoubleDouble
DBTYPE_STRDBTYPE_STR stringstring
DBTYPE_UDTDBTYPE_UDT wird nicht unterstütztnot supported
DBTYPE_UI1DBTYPE_UI1 Byte (Int16)byte (Int16)
DBTYPE_UI2DBTYPE_UI2 UInt16 (Int32)UInt16 (Int32)
DBTYPE_UI4DBTYPE_UI4 UInt32 (Int64)UInt32 (Int64)
DBTYPE_UI8DBTYPE_UI8 UInt64 (Decimal)UInt64 (Decimal)
DBTYPE_VARIANTDBTYPE_VARIANT Objektobject
DBTYPE_VARNUMERICDBTYPE_VARNUMERIC wird nicht unterstütztnot supported
DBTYPE_WSTRDBTYPE_WSTR stringstring

Eigenschaften

FieldCount FieldCount FieldCount FieldCount

Ruft die Anzahl der Spalten in der aktuellen Zeile ab.Gets the number of columns in the current row.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Ruft die Spalte ab, die sich am angegebenen Index befindet.Gets the column located at the specified index.

Item[String] Item[String] Item[String] Item[String]

Ruft die Spalte mit dem angegebenen Namen ab.Gets the column with the specified name.

Methoden

GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32)

Ruft den Wert der angegebenen Spalte als booleschen Wert ab.Gets the value of the specified column as a Boolean.

GetByte(Int32) GetByte(Int32) GetByte(Int32) GetByte(Int32)

Ruft den 8-Bit-Ganzzahlwert ohne Vorzeichen der angegebenen Spalte ab.Gets the 8-bit unsigned integer value of the specified column.

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

Liest einen Datenstrom aus dem angegebenen Spaltenoffset als Array in den Puffer, beginnend am angegebenen Pufferoffset.Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetChar(Int32) GetChar(Int32) GetChar(Int32) GetChar(Int32)

Ruft den Zeichenwert der angegebenen Spalte ab.Gets the character value of the specified column.

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

Liest einen Zeichendatenstrom aus dem angegebenen Spaltenoffset als Array in den Puffer, beginnend am angegebenen Pufferoffset.Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetData(Int32) GetData(Int32) GetData(Int32) GetData(Int32)

Gibt einen IDataReader für die angegebene Spaltenordnungszahl zurück.Returns an IDataReader for the specified column ordinal.

GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32)

Ruft die Datentypinformationen für das angegebene Feld ab.Gets the data type information for the specified field.

GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32)

Ruft das Datum und die Uhrzeit des angegebenen Felds ab.Gets the date and time data value of the specified field.

GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32)

Ruft den an fester Position befindlichen numerischen Wert des angegebenen Felds ab.Gets the fixed-position numeric value of the specified field.

GetDouble(Int32) GetDouble(Int32) GetDouble(Int32) GetDouble(Int32)

Ruft den Wert des angegebenen Felds als Gleitkommazahl mit doppelter Genauigkeit ab.Gets the double-precision floating point number of the specified field.

GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32)

Ruft die Type-Informationen entsprechend dem Typ von Object ab, die von GetValue(Int32) zurückgegeben würden.Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

GetFloat(Int32) GetFloat(Int32) GetFloat(Int32) GetFloat(Int32)

Ruft den Wert des angegebenen Felds als Gleitkommazahl mit einfacher Genauigkeit ab.Gets the single-precision floating point number of the specified field.

GetGuid(Int32) GetGuid(Int32) GetGuid(Int32) GetGuid(Int32)

Gibt den GUID-Wert des angegebenen Felds zurück.Returns the GUID value of the specified field.

GetInt16(Int32) GetInt16(Int32) GetInt16(Int32) GetInt16(Int32)

Ruft den 16-Bit-Ganzzahlwert mit Vorzeichen des angegebenen Felds ab.Gets the 16-bit signed integer value of the specified field.

GetInt32(Int32) GetInt32(Int32) GetInt32(Int32) GetInt32(Int32)

Ruft den 32-Bit-Ganzzahl-mit-Vorzeichen-Wert des angegebenen Felds ab.Gets the 32-bit signed integer value of the specified field.

GetInt64(Int32) GetInt64(Int32) GetInt64(Int32) GetInt64(Int32)

Ruft den 64-Bit-Ganzzahlwert mit Vorzeichen des angegebenen Felds ab.Gets the 64-bit signed integer value of the specified field.

GetName(Int32) GetName(Int32) GetName(Int32) GetName(Int32)

Ruft den Namen des zu suchenden Felds ab.Gets the name for the field to find.

GetOrdinal(String) GetOrdinal(String) GetOrdinal(String) GetOrdinal(String)

Gibt den Index des benannten Felds zurück.Return the index of the named field.

GetString(Int32) GetString(Int32) GetString(Int32) GetString(Int32)

Ruft den Zeichenfolgenwert des angegebenen Felds ab.Gets the string value of the specified field.

GetValue(Int32) GetValue(Int32) GetValue(Int32) GetValue(Int32)

Gibt den Wert des angegebenen Felds zurück.Return the value of the specified field.

GetValues(Object[]) GetValues(Object[]) GetValues(Object[]) GetValues(Object[])

Füllt ein Array von Objekten mit den Spaltenwerten des aktuellen Datensatzes.Populates an array of objects with the column values of the current record.

IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32)

Gibt zurück, ob das angegebene Feld auf NULL festgelegt ist.Return whether the specified field is set to null.

Gilt für: