IDataReader Interfejs
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 IDataReader
element . 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 |
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. |