IDataRecord Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет доступ к значениям столбцов в каждой строке для DataReader
. Реализация осуществляется с помощью поставщиков данных .NET, у которых есть доступ к реляционным базам данных.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Производный
Примеры
В следующем примере создаются экземпляры производных классов , SqlConnectionSqlCommandи SqlDataReader. Этот пример считывает данные, записывая их в консоль. Наконец, пример закрывает 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
Комментарии
IDataReader Интерфейсы и IDataRecord позволяют наследующим классу реализовать DataReader
класс. Это позволяет считывать один или несколько потоков результирующих наборов только вперед. Дополнительные сведения о DataReader
классах см. в разделе Извлечение данных с помощью DataReader.
Приложение не создает экземпляр IDataRecord интерфейса напрямую, а создает экземпляр класса, наследующего IDataRecord. Как правило, это делается путем получения DataReader
с помощью ExecuteReader
метода Command
объекта .
Классы, которые наследуются IDataRecord , должны реализовывать все унаследованные члены и обычно определяют дополнительные члены для добавления функций, зависящих от поставщика.
Поставщики, реализующие , DataReader
должны предоставлять данные в типах CLR. Приведение типов определяется для некоторых типов, не включенных в среду CLR. К этим значениям можно обращаться как к альтернативным типам, соответствующим типам CLR. Например, в следующей таблице перечислены рекомендуемые сопоставления типов данных OLE DB с типами CLR с альтернативными типами в скобках.
Тип OLE DB | Тип CLR |
---|---|
DBTYPE_BOOL | Int16 |
DBTYPE_BSTR | строка |
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 | ExternalException |
DBTYPE_FILETIME | DateTime |
DBTYPE_GUID | 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 | строка |
DBTYPE_UDT | не поддерживается |
DBTYPE_UI1 | byte (Int16) |
DBTYPE_UI2 | UInt16 (Int32) |
DBTYPE_UI4 | UInt32 (Int64) |
DBTYPE_UI8 | UInt64 (decimal) |
DBTYPE_VARIANT | object |
DBTYPE_VARNUMERIC | не поддерживается |
DBTYPE_WSTR | строка |
Свойства
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. |