IDataRecord Interfejs

Definicja

Zapewnia dostęp do wartości kolumn w poszczególnych wierszach dla DataReaderi jest implementowany przez dostawców danych .NET Framework, którzy uzyskują dostęp do relacyjnych baz danych.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
Pochodne

Przykłady

Poniższy przykład tworzy wystąpienia klas pochodnych, SqlConnection, SqlCommandi SqlDataReader.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. Przykład odczytuje dane, pisząc je w konsoli programu.The example reads through the data, writing it out to the console. Na koniec przykład zamyka SqlDataReader, a następnie SqlConnection.Finally, 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

Uwagi

Interfejsy IDataReader i IDataRecord umożliwiają dziedziczenie klasy w celu zaimplementowania klasy DataReader.The IDataReader and IDataRecord interfaces enable an inheriting class to implement a DataReader class. Zapewnia to sposób odczytywania strumieni zestawów wyników z co najmniej jednego przesyłania dalej.This provides a way of reading one or more forward-only streams of result sets. Aby uzyskać więcej informacji na temat klas DataReader, zobacz pobieranie danych za pomocą elementu DataReader.For more information about DataReader classes, see Retrieving Data Using a DataReader.

Aplikacja nie tworzy wystąpienia interfejsu IDataRecord bezpośrednio, ale tworzy wystąpienie klasy, która dziedziczy IDataRecord.An application does not create an instance of the IDataRecord interface directly, but creates an instance of a class that inherits IDataRecord. Zazwyczaj można to zrobić, uzyskując DataReader za pomocą metody ExecuteReader obiektu Command.Typically, you do this by obtaining a DataReader through the ExecuteReader method of the Command object.

Klasy dziedziczące IDataRecord muszą implementować wszystkich dziedziczonych członków i zwykle definiować dodatkowych członków, aby dodać funkcje specyficzne dla dostawcy.Classes that inherit IDataRecord must implement all inherited members, and typically define additional members to add provider-specific functionality.

Dostawcy implementujący DataReader są zobowiązani do udostępniania danych w typach środowiska uruchomieniowego języka wspólnego (CLR).Providers implementing a DataReader are required to expose data in common language runtime (CLR) types. Typ przekształcenia jest zdefiniowany dla niektórych typów, które nie są uwzględnione w środowisku CLR.Type coercion is defined for some types not included in the CLR. Te wartości mogą być dostępne jako alternatywne typy, które są zgodne z typami CLR.These values may be accessed as alternative types that comply with CLR types. Przykładowo w poniższej tabeli przedstawiono sugerowane mapowania z OLE DB typów danych do typów CLR z alternatywnymi typami w nawiasach.As an example, the following table lists suggested mappings from OLE DB data types to CLR types, with alternative types in parentheses.

Typ OLE DBOLE DB type Typ CLRCLR type
DBTYPE_BOOLDBTYPE_BOOL Int16Int16
DBTYPE_BSTRDBTYPE_BSTR stringstring
DBTYPE_BYTESDBTYPE_BYTES byte[]byte[]
DBTYPE_CYDBTYPE_CY Wartość dziesiętnaDecimal
DBTYPE_DATEDBTYPE_DATE DataGodzinaDateTime
DBTYPE_DBDATEDBTYPE_DBDATE DataGodzinaDateTime
DBTYPE_DBTIMEDBTYPE_DBTIME DataGodzinaDateTime
DBTYPE_DBTIMESTAMPDBTYPE_DBTIMESTAMP DataGodzinaDateTime
DBTYPE_DECIMALDBTYPE_DECIMAL Wartość dziesiętnaDecimal
DBTYPE_EMPTYDBTYPE_EMPTY {1>null<1}null
DBTYPE_ERRORDBTYPE_ERROR ExternalException —ExternalException
DBTYPE_FILETIMEDBTYPE_FILETIME DataGodzinaDateTime
DBTYPE_GUIDDBTYPE_GUID GuidGuid
DBTYPE_HCHAPTERDBTYPE_HCHAPTER nieobsługiwanenot supported
DBTYPE_I1DBTYPE_I1 SByteSByte
DBTYPE_I2DBTYPE_I2 Int16Int16
DBTYPE_I4DBTYPE_I4 Int32Int32
DBTYPE_I8DBTYPE_I8 Int64Int64
DBTYPE_IDISPATCHDBTYPE_IDISPATCH Obiekt programuobject
DBTYPE_IUNKNOWNDBTYPE_IUNKNOWN Obiekt programuobject
DBTYPE_NULLDBTYPE_NULL DBNull.ValueDBNull.Value
DBTYPE_NUMERICDBTYPE_NUMERIC Wartość dziesiętnaDecimal
DBTYPE_PROPVARIANTDBTYPE_PROPVARIANT Obiekt programuobject
DBTYPE_R4DBTYPE_R4 SingleSingle
DBTYPE_R8DBTYPE_R8 DoubleDouble
DBTYPE_STRDBTYPE_STR stringstring
DBTYPE_UDTDBTYPE_UDT nieobsługiwanenot 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 (liczba dziesiętna)UInt64 (Decimal)
DBTYPE_VARIANTDBTYPE_VARIANT Obiekt programuobject
DBTYPE_VARNUMERICDBTYPE_VARNUMERIC nieobsługiwanenot supported
DBTYPE_WSTRDBTYPE_WSTR stringstring

Właściwości

FieldCount

Pobiera liczbę kolumn w bieżącym wierszu.Gets the number of columns in the current row.

Item[Int32]

Pobiera kolumnę znajdującą się pod określonym indeksem.Gets the column located at the specified index.

Item[String]

Pobiera kolumnę o określonej nazwie.Gets the column with the specified name.

Metody

GetBoolean(Int32)

Pobiera wartość określonej kolumny jako wartość logiczną.Gets the value of the specified column as a Boolean.

GetByte(Int32)

Pobiera 8-bitową liczbę całkowitą bez znaku dla określonej kolumny.Gets the 8-bit unsigned integer value of the specified column.

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

Odczytuje strumień bajtów z przesunięcia określonego kolumny do bufora jako tablicę, rozpoczynając od danego przesunięcia buforu.Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetChar(Int32)

Pobiera wartość znaku dla określonej kolumny.Gets the character value of the specified column.

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

Odczytuje strumień znaków z przesunięcia określonego kolumny do bufora jako tablicę, rozpoczynając od danego przesunięcia buforu.Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetData(Int32)

Zwraca IDataReader dla określonej liczby porządkowej kolumny.Returns an IDataReader for the specified column ordinal.

GetDataTypeName(Int32)

Pobiera informacje o typie danych dla określonego pola.Gets the data type information for the specified field.

GetDateTime(Int32)

Pobiera wartość daty i godziny dla określonego pola.Gets the date and time data value of the specified field.

GetDecimal(Int32)

Pobiera wartość numeryczną stałego położenia dla określonego pola.Gets the fixed-position numeric value of the specified field.

GetDouble(Int32)

Pobiera liczbę zmiennoprzecinkową o podwójnej precyzji dla określonego pola.Gets the double-precision floating point number of the specified field.

GetFieldType(Int32)

Pobiera Type informacje odpowiadające typowi Object, które zostałyby zwrócone z GetValue(Int32).Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

GetFloat(Int32)

Pobiera liczbę zmiennoprzecinkową o pojedynczej precyzji dla określonego pola.Gets the single-precision floating point number of the specified field.

GetGuid(Int32)

Zwraca wartość identyfikatora GUID określonego pola.Returns the GUID value of the specified field.

GetInt16(Int32)

Pobiera 16-bitową liczbę całkowitą ze znakiem dla określonego pola.Gets the 16-bit signed integer value of the specified field.

GetInt32(Int32)

Pobiera 32-bitową wartość całkowitą ze znakiem dla określonego pola.Gets the 32-bit signed integer value of the specified field.

GetInt64(Int32)

Pobiera 64-bitową wartość całkowitą ze znakiem dla określonego pola.Gets the 64-bit signed integer value of the specified field.

GetName(Int32)

Pobiera nazwę pola do znalezienia.Gets the name for the field to find.

GetOrdinal(String)

Zwraca indeks nazwanego pola.Return the index of the named field.

GetString(Int32)

Pobiera wartość ciągu określonego pola.Gets the string value of the specified field.

GetValue(Int32)

Zwraca wartość określonego pola.Return the value of the specified field.

GetValues(Object[])

Wypełnia tablicę obiektów wartościami kolumn bieżącego rekordu.Populates an array of objects with the column values of the current record.

IsDBNull(Int32)

Zwróć, czy określone pole ma wartość null.Return whether the specified field is set to null.

Dotyczy