IDataRecord Интерфейс

Определение

Предоставляет доступ к значениям столбцов в каждой строке для DataReader. Реализация осуществляют поставщики данных .NET Framework, которые обращаются к реляционным базам данных.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
Производный

Примеры

В следующем примере создаются экземпляры производных классов, SqlConnection, SqlCommandи SqlDataReader.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. Пример считывает данные, записывая их на консоль.The example reads through the data, writing it out to the console. Наконец, в примере закрывается SqlDataReader, а затем 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

Комментарии

Интерфейсы IDataReader и IDataRecord позволяют наследующему классу реализовать класс DataReader.The IDataReader and IDataRecord interfaces enable an inheriting class to implement a DataReader class. Это позволяет считывать один или несколько однонаправленных потоков результирующих наборов.This provides a way of reading one or more forward-only streams of result sets. Дополнительные сведения о DataReader классах см. в разделе Получение данных с помощью DataReader.For more information about DataReader classes, see Retrieving Data Using a DataReader.

Приложение не создает экземпляр интерфейса IDataRecord напрямую, но создает экземпляр класса, наследующего IDataRecord.An application does not create an instance of the IDataRecord interface directly, but creates an instance of a class that inherits IDataRecord. Как правило, это делается путем получения DataReader с помощью метода ExecuteReader объекта Command.Typically, you do this by obtaining a DataReader through the ExecuteReader method of the Command object.

Классы, наследующие IDataRecord, должны реализовывать все наследуемые члены и, как правило, определять дополнительные члены для добавления функций, зависящих от поставщика.Classes that inherit IDataRecord must implement all inherited members, and typically define additional members to add provider-specific functionality.

Поставщики, реализующие DataReader, необходимы для предоставления данных в типах среды CLR.Providers implementing a DataReader are required to expose data in common language runtime (CLR) types. Приведение типов определено для некоторых типов, не включенных в CLR.Type coercion is defined for some types not included in the CLR. Доступ к этим значениям можно получить как к альтернативным типам, которые соответствуют типам CLR.These values may be accessed as alternative types that comply with CLR types. Например, в следующей таблице приведен список предложенных сопоставлений типов данных OLE DB с типами CLR с альтернативными типами в круглых скобках.As an example, the following table lists suggested mappings from OLE DB data types to CLR types, with alternative types in parentheses.

Тип OLE DBOLE DB type Тип CLRCLR 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 не поддерживаетсяnot supported
DBTYPE_I1DBTYPE_I1 SByteSByte
DBTYPE_I2DBTYPE_I2 Int16Int16
DBTYPE_I4DBTYPE_I4 Int32Int32
DBTYPE_I8DBTYPE_I8 Int64Int64
DBTYPE_IDISPATCHDBTYPE_IDISPATCH objectobject
DBTYPE_IUNKNOWNDBTYPE_IUNKNOWN objectobject
DBTYPE_NULLDBTYPE_NULL DBNull. ValueDBNull.Value
DBTYPE_NUMERICDBTYPE_NUMERIC DecimalDecimal
DBTYPE_PROPVARIANTDBTYPE_PROPVARIANT objectobject
DBTYPE_R4DBTYPE_R4 SingleSingle
DBTYPE_R8DBTYPE_R8 С двойной точностьюDouble
DBTYPE_STRDBTYPE_STR stringstring
DBTYPE_UDTDBTYPE_UDT не поддерживаетсяnot 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 (десятичное число)UInt64 (Decimal)
DBTYPE_VARIANTDBTYPE_VARIANT objectobject
DBTYPE_VARNUMERICDBTYPE_VARNUMERIC не поддерживаетсяnot supported
DBTYPE_WSTRDBTYPE_WSTR stringstring

Свойства

FieldCount

Возвращает число столбцов в текущей строке.Gets the number of columns in the current row.

Item[Int32]

Возвращает столбец, находящийся по указанному индексу.Gets the column located at the specified index.

Item[String]

Возвращает столбец по указанному имени.Gets the column with the specified name.

Методы

GetBoolean(Int32)

Возвращает значение указанного столбца в виде логического значения.Gets the value of the specified column as a Boolean.

GetByte(Int32)

Возвращает 8-битное целое число без знака для указанного столбца.Gets the 8-bit unsigned integer value of the specified column.

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

Считывает поток байтов из указанного смещения столбца в буфер в виде массива, начиная с заданного смещения буфера.Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetChar(Int32)

Возвращает значение символа для указанного столбца.Gets the character value of the specified column.

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

Считывает поток символов из указанного смещения столбца в буфер как массив, начиная с заданного смещения буфера.Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetData(Int32)

Возвращает IDataReader для указанного порядкового номера столбца.Returns an IDataReader for the specified column ordinal.

GetDataTypeName(Int32)

Возвращает сведения о типе данных для указанного поля.Gets the data type information for the specified field.

GetDateTime(Int32)

Возвращает значение даты и времени для указанного поля.Gets the date and time data value of the specified field.

GetDecimal(Int32)

Возвращает числовое значение с фиксированным расположением для указанного поля.Gets the fixed-position numeric value of the specified field.

GetDouble(Int32)

Возвращает число с плавающей запятой двойной точности для указанного поля.Gets the double-precision floating point number of the specified field.

GetFieldType(Int32)

Возвращает сведения Type о типе Object, который будет возвращен из GetValue(Int32).Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

GetFloat(Int32)

Возвращает число с плавающей запятой одиночной точности для указанного поля.Gets the single-precision floating point number of the specified field.

GetGuid(Int32)

Возвращает значение GUID указанного поля.Returns the GUID value of the specified field.

GetInt16(Int32)

Возвращает 16-битное целое число со знаком для указанного поля.Gets the 16-bit signed integer value of the specified field.

GetInt32(Int32)

Возвращает 32-битное целое число со знаком для указанного поля.Gets the 32-bit signed integer value of the specified field.

GetInt64(Int32)

Возвращает 64-битное целое число со знаком для указанного поля.Gets the 64-bit signed integer value of the specified field.

GetName(Int32)

Возвращает имя для поля, которое необходимо найти.Gets the name for the field to find.

GetOrdinal(String)

Возвращает индекс именованного поля.Return the index of the named field.

GetString(Int32)

Получает значение строки заданного ключа.Gets the string value of the specified field.

GetValue(Int32)

Возвращает значение указанного поля.Return the value of the specified field.

GetValues(Object[])

Заполняет массив объектов значениями столбцов текущей записи.Populates an array of objects with the column values of the current record.

IsDBNull(Int32)

Возвращает логическое значение, показывающее, имеет ли указанное поле значение null.Return whether the specified field is set to null.

Применяется к