IDataRecord Интерфейс

Определение

Предоставляет доступ к значениям столбцов в каждой строке для DataReaderкаждой строки и реализуется поставщиками данных .NET, которые обращаются к реляционным базам данных.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Производный

Примеры

В следующем примере создаются экземпляры производных классов, SqlConnectionи SqlCommandSqlDataReader. Пример считывает данные, записывая его в консоль. Наконец, пример закрывает SqlDataReaderи затем 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

Комментарии

IDataRecord Интерфейсы IDataReader позволяют наследующим классу реализовать DataReader класс. Это обеспечивает возможность чтения одного или нескольких потоков только для пересылки результирующих наборов. Дополнительные сведения о классах см. в DataReader разделе "Извлечение данных с помощью DataReader".

Приложение не создает экземпляр IDataRecord интерфейса напрямую, но создает экземпляр класса, наследуемого IDataRecord. Как правило, это можно сделать, получив DataReaderExecuteReader метод Command объекта.

Классы, наследуемые IDataRecord должны реализовывать все унаследованные члены и обычно определять дополнительные элементы для добавления функциональных возможностей для конкретного поставщика.

Поставщики, реализующие объект, DataReader необходимы для предоставления данных в типах среды CLR. Приведение типов определяется для некоторых типов, не включенных в среду CLR. К этим значениям можно обращаться как к альтернативным типам, которые соответствуют типам СРЕДЫ CLR. Например, в следующей таблице перечислены предлагаемые сопоставления типов данных OLE DB с типами CLR с альтернативными типами в скобках.

Тип OLE DB Тип CLR
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 ВнешнееИсключение
DBTYPE_FILETIME (тип данных FILETIME) DateTime
DBTYPE_GUID Гид
DBTYPE_HCHAPTER Не поддерживается
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 Не поддерживается
DBTYPE_UI1 байт (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (десятичное значение)
DBTYPE_VARIANT object
DBTYPE_VARNUMERIC Не поддерживается
DBTYPE_WSTR string

Свойства

Имя Описание
FieldCount

Возвращает количество столбцов в текущей строке.

Item[Int32]

Возвращает столбец, расположенный по указанному индексу.

Item[String]

Возвращает столбец с указанным именем.

Методы

Имя Описание
GetBoolean(Int32)

Возвращает значение указанного столбца как логическое значение.

GetByte(Int32)

Возвращает 8-разрядное целое число без знака указанного столбца.

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

Считывает поток байтов из указанного смещения столбца в буфер в виде массива, начиная с заданного смещения буфера.

GetChar(Int32)

Возвращает значение символа указанного столбца.

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

Считывает поток символов из указанного смещения столбца в буфер в виде массива, начиная с заданного смещения буфера.

GetData(Int32)

IDataReader Возвращает порядковый номер указанного столбца.

GetDataTypeName(Int32)

Возвращает сведения о типе данных для указанного поля.

GetDateTime(Int32)

Возвращает значение данных даты и времени указанного поля.

GetDecimal(Int32)

Возвращает числовое значение фиксированной позиции указанного поля.

GetDouble(Int32)

Возвращает число с плавающей запятой двойной точности указанного поля.

GetFieldType(Int32)

Type Возвращает сведения, соответствующие типуObject, из который будет возвращенGetValue(Int32).

GetFloat(Int32)

Возвращает число с плавающей запятой с одной точностью указанного поля.

GetGuid(Int32)

Возвращает значение GUID указанного поля.

GetInt16(Int32)

Возвращает 16-разрядное целое число со знаком указанного поля.

GetInt32(Int32)

Возвращает 32-разрядное целое число со знаком указанного поля.

GetInt64(Int32)

Возвращает 64-разрядное целое число со знаком указанного поля.

GetName(Int32)

Возвращает имя для поиска поля.

GetOrdinal(String)

Возвращает индекс именованного поля.

GetString(Int32)

Возвращает строковое значение указанного поля.

GetValue(Int32)

Возвращает значение указанного поля.

GetValues(Object[])

Заполняет массив объектов значениями столбцов текущей записи.

IsDBNull(Int32)

Возвращает значение NULL для указанного поля.

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