IDataReader Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет средство чтения одного или нескольких потоков результатов только для пересылки результирующих наборов, полученных путем выполнения команды в источнике данных, и реализуется .NET поставщиками данных, которые обращаются к реляционным базам данных.
public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
interface IDisposable
interface IDataRecord
type IDataReader = interface
interface IDataRecord
interface IDisposable
Public Interface IDataReader
Implements IDataRecord, IDisposable
- Производный
- Реализации
Примеры
В следующем примере создаются экземпляры производных классов, 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
Комментарии
Интерфейсы IDataReader позволяют IDataRecord наследующим классу реализовывать DataReader класс, который предоставляет средства чтения одного или нескольких потоков результирующих наборов только для перенаправления. Дополнительные сведения о классах см. в DataReader разделе "Извлечение данных с помощью DataReader".
Приложение не создает экземпляр IDataReader интерфейса напрямую, но создает экземпляр класса, наследуемого IDataReader.
Классы, наследуемые IDataReader должны реализовывать наследуемые элементы и обычно определять дополнительные элементы для добавления функциональных возможностей для конкретного поставщика.
Изменения, внесенные в результирующий набор другим процессом или потоком во время чтения данных, могут быть видимы пользователю класса, реализующего объект IDataReader. Однако точное поведение зависит от поставщика и времени.
Примечания для тех, кто реализует этот метод
Чтобы повысить согласованность между поставщиками данных .NET Framework, назовите наследующий класс в форме Prv Command, где Prv является универсальным префиксом, предоставленным всем классам в определенном пространстве имен поставщика данных .NET Framework. Например, Sql префикс SqlDataAdapter класса в System.Data.SqlClient пространстве имен.
Пользователи не создают экземпляр класса напрямую DataReader . Вместо этого они получают DataReader экземпляр с помощью ExecuteReader метода Command объекта. Поэтому необходимо пометить DataReader конструкторы как внутренние.
Свойства
| Имя | Описание |
|---|---|
| Depth |
Возвращает значение, указывающее глубину вложения текущей строки. |
| FieldCount |
Возвращает количество столбцов в текущей строке. (Унаследовано от IDataRecord) |
| IsClosed |
Возвращает значение, указывающее, закрыт ли читатель данных. |
| Item[Int32] |
Возвращает столбец, расположенный по указанному индексу. (Унаследовано от IDataRecord) |
| Item[String] |
Возвращает столбец с указанным именем. (Унаследовано от IDataRecord) |
| RecordsAffected |
Возвращает количество строк, измененных, вставленных или удаленных при выполнении инструкции SQL. |
Методы
| Имя | Описание |
|---|---|
| Close() |
IDataReader Закрывает объект. |
| Dispose() |
Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов. (Унаследовано от IDisposable) |
| GetBoolean(Int32) |
Возвращает значение указанного столбца как логическое значение. (Унаследовано от IDataRecord) |
| GetByte(Int32) |
Возвращает 8-разрядное целое число без знака указанного столбца. (Унаследовано от IDataRecord) |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Считывает поток байтов из указанного смещения столбца в буфер в виде массива, начиная с заданного смещения буфера. (Унаследовано от IDataRecord) |
| GetChar(Int32) |
Возвращает значение символа указанного столбца. (Унаследовано от IDataRecord) |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
Считывает поток символов из указанного смещения столбца в буфер в виде массива, начиная с заданного смещения буфера. (Унаследовано от IDataRecord) |
| GetData(Int32) |
IDataReader Возвращает порядковый номер указанного столбца. (Унаследовано от IDataRecord) |
| GetDataTypeName(Int32) |
Возвращает сведения о типе данных для указанного поля. (Унаследовано от IDataRecord) |
| GetDateTime(Int32) |
Возвращает значение данных даты и времени указанного поля. (Унаследовано от IDataRecord) |
| GetDecimal(Int32) |
Возвращает числовое значение фиксированной позиции указанного поля. (Унаследовано от IDataRecord) |
| GetDouble(Int32) |
Возвращает число с плавающей запятой двойной точности указанного поля. (Унаследовано от IDataRecord) |
| GetFieldType(Int32) |
Type Возвращает сведения, соответствующие типуObject, из который будет возвращенGetValue(Int32). (Унаследовано от IDataRecord) |
| GetFloat(Int32) |
Возвращает число с плавающей запятой с одной точностью указанного поля. (Унаследовано от IDataRecord) |
| GetGuid(Int32) |
Возвращает значение GUID указанного поля. (Унаследовано от IDataRecord) |
| GetInt16(Int32) |
Возвращает 16-разрядное целое число со знаком указанного поля. (Унаследовано от IDataRecord) |
| GetInt32(Int32) |
Возвращает 32-разрядное целое число со знаком указанного поля. (Унаследовано от IDataRecord) |
| GetInt64(Int32) |
Возвращает 64-разрядное целое число со знаком указанного поля. (Унаследовано от IDataRecord) |
| GetName(Int32) |
Возвращает имя для поиска поля. (Унаследовано от IDataRecord) |
| GetOrdinal(String) |
Возвращает индекс именованного поля. (Унаследовано от IDataRecord) |
| GetSchemaTable() |
Возвращает значение DataTable , описывающее метаданные столбца IDataReader. Возвращает, |
| GetString(Int32) |
Возвращает строковое значение указанного поля. (Унаследовано от IDataRecord) |
| GetValue(Int32) |
Возвращает значение указанного поля. (Унаследовано от IDataRecord) |
| GetValues(Object[]) |
Заполняет массив объектов значениями столбцов текущей записи. (Унаследовано от IDataRecord) |
| IsDBNull(Int32) |
Возвращает значение NULL для указанного поля. (Унаследовано от IDataRecord) |
| NextResult() |
Перемещает средство чтения данных к следующему результату при чтении результатов пакетных инструкций SQL. |
| Read() |
Перемещает следующую IDataReader запись. |