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 для указанного поля. |