IDataReader Interfejs

Definicja

Umożliwia odczytywanie co najmniej jednego strumienia tylko do przesyłania dalej z zestawu wyników uzyskanych przez wykonanie polecenia w źródle danych i jest implementowany przez .NET Framework dostawców danych, którzy uzyskują dostęp do relacyjnych baz danych.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
Pochodne
Implementuje

Przykłady

Poniższy przykład tworzy wystąpienia klas pochodnych, SqlConnection, SqlCommandi SqlDataReader.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. Przykład odczytuje dane, pisząc je w konsoli programu.The example reads through the data, writing it out to the console. Na koniec przykład zamyka SqlDataReader, a następnie 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

Uwagi

Interfejsy IDataReader i IDataRecord umożliwiają dziedziczenie klasy w celu zaimplementowania klasy DataReader, która zapewnia sposób odczytywania co najmniej jednego strumienia tylko do przesyłania dalej zestawów wyników.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. Aby uzyskać więcej informacji na temat klas DataReader, zobacz pobieranie danych za pomocą elementu DataReader.For more information about DataReader classes, see Retrieving Data Using a DataReader.

Aplikacja nie tworzy wystąpienia interfejsu IDataReader bezpośrednio, ale tworzy wystąpienie klasy, która dziedziczy IDataReader.An application does not create an instance of the IDataReader interface directly, but creates an instance of a class that inherits IDataReader.

Klasy dziedziczące IDataReader muszą implementować dziedziczone elementy członkowskie i zwykle definiują dodatkowych członków do dodawania funkcji specyficznych dla dostawcy.Classes that inherit IDataReader must implement the inherited members, and typically define additional members to add provider-specific functionality.

Zmiany wprowadzone w wyniku określonym przez inny proces lub wątek podczas odczytywania danych mogą być widoczne dla użytkownika klasy implementującej 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. Jednak dokładne zachowanie jest zależne od dostawcy i chronometrażu.However, the precise behavior is both provider and timing dependent.

Uwagi dotyczące implementowania

Aby podwyższyć poziom spójności między dostawcami danych .NET Framework, nazwij klasę dziedziczenia w formularzu Prv polecenie, gdzie Prv jest jednolite Prefiks nadany wszystkim klasom w określonej przestrzeni nazw dostawcy danych .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. Na przykład Sql jest prefiksem klasy SqlDataAdapter w przestrzeni nazw System.Data.SqlClient.For example, Sql is the prefix of the SqlDataAdapter class in the System.Data.SqlClient namespace.

Użytkownicy nie tworzą bezpośrednio wystąpienia klasy DataReader.Users do not create an instance of a DataReader class directly. Zamiast tego uzyskują wystąpienie DataReader za pomocą metody ExecuteReader obiektu Command.Instead, they obtain the DataReader instance through the ExecuteReader method of the Command object. W związku z tym należy oznaczyć konstruktory DataReader jako wewnętrzne.Therefore, you should mark DataReader constructors as internal.

Właściwości

Depth

Pobiera wartość wskazującą głębokość zagnieżdżenia dla bieżącego wiersza.Gets a value indicating the depth of nesting for the current row.

FieldCount

Pobiera liczbę kolumn w bieżącym wierszu.Gets the number of columns in the current row.

(Odziedziczone po IDataRecord)
IsClosed

Pobiera wartość wskazującą, czy czytnik danych jest zamknięty.Gets a value indicating whether the data reader is closed.

Item[Int32]

Pobiera kolumnę znajdującą się pod określonym indeksem.Gets the column located at the specified index.

(Odziedziczone po IDataRecord)
Item[String]

Pobiera kolumnę o określonej nazwie.Gets the column with the specified name.

(Odziedziczone po IDataRecord)
RecordsAffected

Pobiera liczbę wierszy zmienionych, wstawionych lub usuniętych przez wykonanie instrukcji SQL.Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.

Metody

Close()

Zamyka obiekt IDataReader.Closes the IDataReader Object.

Dispose()

Wykonuje zadania zdefiniowane przez aplikację skojarzone z uwalnianiem, zwalnianiem lub resetowaniem niezarządzanych zasobów.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Odziedziczone po IDisposable)
GetBoolean(Int32)

Pobiera wartość określonej kolumny jako wartość logiczną.Gets the value of the specified column as a Boolean.

(Odziedziczone po IDataRecord)
GetByte(Int32)

Pobiera 8-bitową liczbę całkowitą bez znaku dla określonej kolumny.Gets the 8-bit unsigned integer value of the specified column.

(Odziedziczone po IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Odczytuje strumień bajtów z przesunięcia określonego kolumny do bufora jako tablicę, rozpoczynając od danego przesunięcia buforu.Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

(Odziedziczone po IDataRecord)
GetChar(Int32)

Pobiera wartość znaku dla określonej kolumny.Gets the character value of the specified column.

(Odziedziczone po IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

Odczytuje strumień znaków z przesunięcia określonego kolumny do bufora jako tablicę, rozpoczynając od danego przesunięcia buforu.Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

(Odziedziczone po IDataRecord)
GetData(Int32)

Zwraca IDataReader dla określonej liczby porządkowej kolumny.Returns an IDataReader for the specified column ordinal.

(Odziedziczone po IDataRecord)
GetDataTypeName(Int32)

Pobiera informacje o typie danych dla określonego pola.Gets the data type information for the specified field.

(Odziedziczone po IDataRecord)
GetDateTime(Int32)

Pobiera wartość daty i godziny dla określonego pola.Gets the date and time data value of the specified field.

(Odziedziczone po IDataRecord)
GetDecimal(Int32)

Pobiera wartość numeryczną stałego położenia dla określonego pola.Gets the fixed-position numeric value of the specified field.

(Odziedziczone po IDataRecord)
GetDouble(Int32)

Pobiera liczbę zmiennoprzecinkową o podwójnej precyzji dla określonego pola.Gets the double-precision floating point number of the specified field.

(Odziedziczone po IDataRecord)
GetFieldType(Int32)

Pobiera Type informacje odpowiadające typowi Object, które zostałyby zwrócone z GetValue(Int32).Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

(Odziedziczone po IDataRecord)
GetFloat(Int32)

Pobiera liczbę zmiennoprzecinkową o pojedynczej precyzji dla określonego pola.Gets the single-precision floating point number of the specified field.

(Odziedziczone po IDataRecord)
GetGuid(Int32)

Zwraca wartość identyfikatora GUID określonego pola.Returns the GUID value of the specified field.

(Odziedziczone po IDataRecord)
GetInt16(Int32)

Pobiera 16-bitową liczbę całkowitą ze znakiem dla określonego pola.Gets the 16-bit signed integer value of the specified field.

(Odziedziczone po IDataRecord)
GetInt32(Int32)

Pobiera 32-bitową wartość całkowitą ze znakiem dla określonego pola.Gets the 32-bit signed integer value of the specified field.

(Odziedziczone po IDataRecord)
GetInt64(Int32)

Pobiera 64-bitową wartość całkowitą ze znakiem dla określonego pola.Gets the 64-bit signed integer value of the specified field.

(Odziedziczone po IDataRecord)
GetName(Int32)

Pobiera nazwę pola do znalezienia.Gets the name for the field to find.

(Odziedziczone po IDataRecord)
GetOrdinal(String)

Zwraca indeks nazwanego pola.Return the index of the named field.

(Odziedziczone po IDataRecord)
GetSchemaTable()

Zwraca DataTable, który opisuje metadane kolumn IDataReader.Returns a DataTable that describes the column metadata of the IDataReader.

GetString(Int32)

Pobiera wartość ciągu określonego pola.Gets the string value of the specified field.

(Odziedziczone po IDataRecord)
GetValue(Int32)

Zwraca wartość określonego pola.Return the value of the specified field.

(Odziedziczone po IDataRecord)
GetValues(Object[])

Wypełnia tablicę obiektów wartościami kolumn bieżącego rekordu.Populates an array of objects with the column values of the current record.

(Odziedziczone po IDataRecord)
IsDBNull(Int32)

Zwróć, czy określone pole ma wartość null.Return whether the specified field is set to null.

(Odziedziczone po IDataRecord)
NextResult()

Przesuwa czytnik danych do następnego wyniku, odczytując wyniki instrukcji wsadowych SQL.Advances the data reader to the next result, when reading the results of batch SQL statements.

Read()

Przechodzi do następnego rekordu IDataReader.Advances the IDataReader to the next record.

Dotyczy