IDataReader Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет средства чтения одного или нескольких прямонаправленных потоков наборов результатов, полученных вследствие выполнения команды в источнике данных. Реализацию осуществляют поставщики данных .NET, которые имеют доступ к реляционным базам данных.
public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
interface IDataRecord
interface IDisposable
type IDataReader = interface
interface IDisposable
interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
- Производный
- Реализации
Примеры
В следующем примере создаются экземпляры производных классов , 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.
Приложение не создает экземпляр 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 к следующей записи. |