Udostępnij za pośrednictwem


IDataReader Interfejs

Definicja

Zapewnia sposób odczytywania co najmniej jednego strumienia tylko do przodu zestawów wyników uzyskanych przez wykonanie polecenia w źródle danych i jest implementowany przez dostawców danych platformy .NET, którzy uzyskują dostęp do relacyjnych baz danych.

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
Pochodne
Implementuje

Przykłady

Poniższy przykład tworzy wystąpienia klas pochodnych, SqlConnection, SqlCommandi SqlDataReader. Przykład odczytuje dane, zapisuj je w konsoli. Na koniec przykład zamyka element SqlDataReader, a następnie 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

Uwagi

Interfejsy IDataReader i IDataRecord umożliwiają dziedziczonej klasie zaimplementowanie DataReader klasy, która zapewnia sposób odczytywania co najmniej jednego strumienia tylko do przodu zestawów wyników. Aby uzyskać więcej informacji na temat DataReader klas, zobacz Pobieranie danych przy użyciu elementu DataReader.

Aplikacja nie tworzy bezpośrednio wystąpienia interfejsu IDataReader , ale tworzy wystąpienie klasy dziedziczonej przez klasę IDataReader.

Klasy dziedziczone IDataReader muszą implementować dziedziczone elementy członkowskie i zazwyczaj definiują dodatkowe elementy członkowskie w celu dodania funkcji specyficznych dla dostawcy.

Zmiany wprowadzone w zestawie wyników przez inny proces lub wątek, gdy dane są odczytywane, mogą być widoczne dla użytkownika klasy, która implementuje IDataReaderelement . Jednak dokładne zachowanie jest zależne od dostawcy i chronometrażu.

Uwagi dotyczące implementowania

Aby podwyższyć spójność wśród dostawców danych .NET Framework, nazwij klasę dziedziczą w formularzu Prv Command, gdzie Prv jest jednolity prefiks nadany wszystkim klasom w określonej przestrzeni nazw dostawcy danych .NET Framework. Na przykład Sql jest prefiksem SqlDataAdapter klasy w System.Data.SqlClient przestrzeni nazw.

Użytkownicy nie tworzą bezpośrednio wystąpienia DataReader klasy. Zamiast tego uzyskują DataReader wystąpienie za pomocą ExecuteReader metody Command obiektu. W związku z tym należy oznaczyć DataReader konstruktory jako wewnętrzne.

Właściwości

Depth

Pobiera wartość wskazującą głębokość zagnieżdżania dla bieżącego wiersza.

FieldCount

Pobiera liczbę kolumn w bieżącym wierszu.

(Odziedziczone po IDataRecord)
IsClosed

Pobiera wartość wskazującą, czy czytnik danych jest zamknięty.

Item[Int32]

Pobiera kolumnę znajdującą się w określonym indeksie.

(Odziedziczone po IDataRecord)
Item[String]

Pobiera kolumnę o określonej nazwie.

(Odziedziczone po IDataRecord)
RecordsAffected

Pobiera liczbę wierszy zmienionych, wstawionych lub usuniętych przez wykonanie instrukcji SQL.

Metody

Close()

IDataReader Zamyka obiekt.

Dispose()

Wykonuje zdefiniowane przez aplikację zadania skojarzone ze zwalnianiem lub resetowaniem zasobów niezarządzanych.

(Odziedziczone po IDisposable)
GetBoolean(Int32)

Pobiera wartość określonej kolumny jako wartość logiczną.

(Odziedziczone po IDataRecord)
GetByte(Int32)

Pobiera 8-bitową wartość niepodpisanej liczby całkowitej określonej kolumny.

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

Odczytuje strumień bajtów z określonego przesunięcia kolumny do buforu jako tablicy, rozpoczynając od danego przesunięcia buforu.

(Odziedziczone po IDataRecord)
GetChar(Int32)

Pobiera wartość znaku określonej kolumny.

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

Odczytuje strumień znaków z przesunięcia określonej kolumny do buforu jako tablicy, rozpoczynając od przesunięcia danego buforu.

(Odziedziczone po IDataRecord)
GetData(Int32)

Zwraca element IDataReader dla określonej kolumny porządkowej.

(Odziedziczone po IDataRecord)
GetDataTypeName(Int32)

Pobiera informacje o typie danych dla określonego pola.

(Odziedziczone po IDataRecord)
GetDateTime(Int32)

Pobiera wartość danych daty i godziny określonego pola.

(Odziedziczone po IDataRecord)
GetDecimal(Int32)

Pobiera wartość liczbową stałego położenia określonego pola.

(Odziedziczone po IDataRecord)
GetDouble(Int32)

Pobiera liczbę zmiennoprzecinkową o podwójnej precyzji określonego pola.

(Odziedziczone po IDataRecord)
GetFieldType(Int32)

Type Pobiera informacje odpowiadające typowiObject, który zostanie zwrócony z GetValue(Int32)elementu .

(Odziedziczone po IDataRecord)
GetFloat(Int32)

Pobiera liczbę zmiennoprzecinkową o pojedynczej precyzji określonego pola.

(Odziedziczone po IDataRecord)
GetGuid(Int32)

Zwraca wartość identyfikatora GUID określonego pola.

(Odziedziczone po IDataRecord)
GetInt16(Int32)

Pobiera 16-bitową wartość całkowitą z podpisem dla określonego pola.

(Odziedziczone po IDataRecord)
GetInt32(Int32)

Pobiera 32-bitową wartość całkowitą z podpisem dla określonego pola.

(Odziedziczone po IDataRecord)
GetInt64(Int32)

Pobiera 64-bitową wartość całkowitą z podpisem dla określonego pola.

(Odziedziczone po IDataRecord)
GetName(Int32)

Pobiera nazwę pola do znalezienia.

(Odziedziczone po IDataRecord)
GetOrdinal(String)

Zwróć indeks nazwanego pola.

(Odziedziczone po IDataRecord)
GetSchemaTable()

Zwraca element DataTable opisujący metadane kolumny elementu IDataReader.

Zwraca null wartość , jeśli wykonane polecenie nie zwróciło zestawu wyników lub po NextResult() zwracaniu wartości false.

GetString(Int32)

Pobiera wartość ciągu określonego pola.

(Odziedziczone po IDataRecord)
GetValue(Int32)

Zwróć wartość określonego pola.

(Odziedziczone po IDataRecord)
GetValues(Object[])

Wypełnia tablicę obiektów wartościami kolumn bieżącego rekordu.

(Odziedziczone po IDataRecord)
IsDBNull(Int32)

Zwróć, czy określone pole ma wartość null.

(Odziedziczone po IDataRecord)
NextResult()

Przechodzi do następnego wyniku czytnika danych podczas odczytywania wyników instrukcji SQL wsadowych.

Read()

IDataReader Przechodzi do następnego rekordu.

Dotyczy