IDataReader Интерфейс

Определение

Предоставляет средства чтения одного или нескольких прямонаправленных потоков наборов результатов, полученных вследствие выполнения команды в источнике данных. Реализацию осуществляют поставщики данных .NET Framework, которые имеют доступ к реляционным базам данных.Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by .NET Framework data providers that access relational databases.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
Производный
Реализации

Примеры

В следующем примере создаются экземпляры производных классов SqlConnection SqlCommand,, и SqlDataReader.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. Пример считывает данные, записывая их на консоль.The example reads through the data, writing it out to the console. Наконец, в примере закрывается SqlDataReader, SqlConnectionа затем.Finally, the example closes the SqlDataReader, then the SqlConnection.

using System;
using System.Data;
using System.Data.SqlClient;


class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadOrderData(str);
    }

    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 record)
    {
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[1]));
    }

}
Option Explicit On
Option Strict On

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub

    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

End Module

Комментарии

Интерфейсы IDataReader DataReader и IDataRecord позволяют наследующему классу реализовать класс, который предоставляет средства чтения одного или нескольких однонаправленных потоков результирующих наборов.The IDataReader and IDataRecord interfaces allow an inheriting class to implement a DataReader class, which provides a means of reading one or more forward-only streams of result sets. Дополнительные сведения о DataReader классах см. в разделе Получение данных с помощью DataReader.For more information about DataReader classes, see Retrieving Data Using a DataReader.

Приложение не создает экземпляр IDataReader интерфейса напрямую, но создает экземпляр класса, который IDataReaderнаследует.An application does not create an instance of the IDataReader interface directly, but creates an instance of a class that inherits IDataReader.

Классы, наследующие IDataReader , должны реализовывать унаследованные члены и, как правило, определяют дополнительные члены для добавления функций, зависящих от поставщика.Classes that inherit IDataReader must implement the inherited members, and typically define additional members to add provider-specific functionality.

Изменения, внесенные в результирующий набор другим процессом или потоком во время чтения данных, могут быть видимы для пользователя класса, реализующего IDataReader.Changes made to a result set by another process or thread while data is being read may be visible to the user of a class that implements an IDataReader. Однако точное поведение зависит от поставщика и от времени.However, the precise behavior is both provider and timing dependent.

Примечания для тех, кто реализует этот метод

Чтобы повысить согласованность между .NET Framework поставщиками данных, назовите класс-наследник в Prv команде Form Prv , где — это универсальный префикс, присваиваемый всем классам в определенном пространстве имен поставщика данных .NET Framework.To promote consistency among .NET Framework data providers, name the inheriting class in the form Prv Command where Prv is the uniform prefix given to all classes in a specific .NET Framework data provider namespace. Например, Sql является префиксом SqlDataAdapter класса в System.Data.SqlClient пространстве имен.For example, Sql is the prefix of the SqlDataAdapter class in the System.Data.SqlClient namespace.

Пользователи не создают экземпляр DataReader класса напрямую.Users do not create an instance of a DataReader class directly. Вместо этого они получают DataReader экземпляр ExecuteReader с помощью метода Command объекта.Instead, they obtain the DataReader instance through the ExecuteReader method of the Command object. Поэтому конструкторы следует помечать DataReader как внутренние.Therefore, you should mark DataReader constructors as internal.

Свойства

Depth

Возвращает значение, показывающее глубину вложенности для текущей строки.Gets a value indicating the depth of nesting for the current row.

FieldCount

Возвращает число столбцов в текущей строке.Gets the number of columns in the current row.

(Унаследовано от IDataRecord)
IsClosed

Возвращает значение, которое указывает, является ли модуль чтения закрытым.Gets a value indicating whether the data reader is closed.

Item[Int32]

Возвращает столбец, находящийся по указанному индексу.Gets the column located at the specified index.

(Унаследовано от IDataRecord)
Item[String]

Возвращает столбец с указанным именем.Gets the column with the specified name.

(Унаследовано от IDataRecord)
RecordsAffected

Возвращает число строк, которые были изменены, вставлены или удалены инструкцией SQL.Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.

Методы

Close()

Закрывает объект IDataReader.Closes the IDataReader Object.

Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Унаследовано от IDisposable)
GetBoolean(Int32)

Возвращает значение указанного столбца в виде логического значения.Gets the value of the specified column as a Boolean.

(Унаследовано от IDataRecord)
GetByte(Int32)

Возвращает 8-битное целое число без знака для указанного столбца.Gets the 8-bit unsigned integer value of the specified column.

(Унаследовано от IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Считывает поток байтов из указанного смещения столбца в буфер в виде массива, начиная с заданного смещения буфера.Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

(Унаследовано от IDataRecord)
GetChar(Int32)

Возвращает значение символа для указанного столбца.Gets the character value of the specified column.

(Унаследовано от IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

Считывает поток символов из указанного смещения столбца в буфер как массив, начиная с заданного смещения буфера.Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

(Унаследовано от IDataRecord)
GetData(Int32)

Возвращает IDataReader для указанного порядкового номера столбца.Returns an IDataReader for the specified column ordinal.

(Унаследовано от IDataRecord)
GetDataTypeName(Int32)

Возвращает сведения о типе данных для указанного поля.Gets the data type information for the specified field.

(Унаследовано от IDataRecord)
GetDateTime(Int32)

Возвращает значение даты и времени для указанного поля.Gets the date and time data value of the specified field.

(Унаследовано от IDataRecord)
GetDecimal(Int32)

Возвращает числовое значение с фиксированным расположением для указанного поля.Gets the fixed-position numeric value of the specified field.

(Унаследовано от IDataRecord)
GetDouble(Int32)

Возвращает число с плавающей запятой двойной точности для указанного поля.Gets the double-precision floating point number of the specified field.

(Унаследовано от IDataRecord)
GetFieldType(Int32)

Возвращает сведения Type о типе Object, который будет возвращен из GetValue(Int32).Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

(Унаследовано от IDataRecord)
GetFloat(Int32)

Возвращает число с плавающей запятой одиночной точности для указанного поля.Gets the single-precision floating point number of the specified field.

(Унаследовано от IDataRecord)
GetGuid(Int32)

Возвращает значение GUID указанного поля.Returns the GUID value of the specified field.

(Унаследовано от IDataRecord)
GetInt16(Int32)

Возвращает 16-битное целое число со знаком для указанного поля.Gets the 16-bit signed integer value of the specified field.

(Унаследовано от IDataRecord)
GetInt32(Int32)

Возвращает 32-битное целое число со знаком для указанного поля.Gets the 32-bit signed integer value of the specified field.

(Унаследовано от IDataRecord)
GetInt64(Int32)

Возвращает 64-битное целое число со знаком для указанного поля.Gets the 64-bit signed integer value of the specified field.

(Унаследовано от IDataRecord)
GetName(Int32)

Возвращает имя для поля, которое необходимо найти.Gets the name for the field to find.

(Унаследовано от IDataRecord)
GetOrdinal(String)

Возвращает индекс именованного поля.Return the index of the named field.

(Унаследовано от IDataRecord)
GetSchemaTable()

Возвращает объект DataTable, описывающий метаданные столбцов модуля чтения данных IDataReader.Returns a DataTable that describes the column metadata of the IDataReader.

GetString(Int32)

Получает значение строки заданного ключа.Gets the string value of the specified field.

(Унаследовано от IDataRecord)
GetValue(Int32)

Возвращает значение указанного поля.Return the value of the specified field.

(Унаследовано от IDataRecord)
GetValues(Object[])

Заполняет массив объектов значениями столбцов текущей записи.Populates an array of objects with the column values of the current record.

(Унаследовано от IDataRecord)
IsDBNull(Int32)

Возвращает логическое значение, показывающее, имеет ли указанное поле значение null.Return whether the specified field is set to null.

(Унаследовано от IDataRecord)
NextResult()

Перемещает модуль чтения данных к следующему результату при чтении результатов из пакета инструкций SQL.Advances the data reader to the next result, when reading the results of batch SQL statements.

Read()

Перемещает IDataReader к следующей записи.Advances the IDataReader to the next record.

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