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 zestawów wyników tylko do przodu uzyskanych przez wykonanie polecenia w źródle danych i jest implementowany przez .NET dostawców danych, 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 IDisposable
interface IDataRecord
type IDataReader = interface
interface IDataRecord
interface IDisposable
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 SqlDataReaderelement , 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ą dziedziczenie klasy do implementowania 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 interfejsuIDataReader, ale tworzy wystąpienie klasy dziedziczonej .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 podczas odczytywania danych mogą być widoczne dla użytkownika klasy implementujące element IDataReader. Jednak dokładne zachowanie jest zależne zarówno od dostawcy, jak i czasu.
Notatki dotyczące implementowania
Aby promować spójność wśród dostawców danych .NET Framework, nadaj nazwę dziedziczącej klasie w postaci Prv Command, gdzie Prv jest jednolity prefiks podany dla wszystkich klas w określonej przestrzeni nazw dostawcy danych platformy .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
| Nazwa | Opis |
|---|---|
| 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
| Nazwa | Opis |
|---|---|
| Close() |
IDataReader Zamyka obiekt. |
| Dispose() |
Wykonuje zadania zdefiniowane przez aplikację skojarzone z zwalnianiem, wydawaniem lub resetowaniem niezarządzanych zasobów. (Odziedziczone po IDisposable) |
| GetBoolean(Int32) |
Pobiera wartość określonej kolumny jako wartość logiczną. (Odziedziczone po IDataRecord) |
| GetByte(Int32) |
Pobiera 8-bitową niepodpisaną wartość całkowitą określonej kolumny. (Odziedziczone po IDataRecord) |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Odczytuje strumień bajtów z określonej kolumny przesunięcia do buforu jako tablicy, zaczynają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 określonej kolumny przesunięcia do buforu jako tablicy, zaczynając od danego przesunięcia buforu. (Odziedziczone po IDataRecord) |
| GetData(Int32) |
Zwraca wartość 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ą o stałej pozycji 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) (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ą ze znakiem określonego pola. (Odziedziczone po IDataRecord) |
| GetInt32(Int32) |
Pobiera 32-bitową wartość całkowitą ze znakiem określonego pola. (Odziedziczone po IDataRecord) |
| GetInt64(Int32) |
Pobiera wartość 64-bitowej liczby całkowitej ze znakiem 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 opisujący DataTable metadane kolumny obiektu IDataReader. Zwraca |
| GetString(Int32) |
Pobiera wartość ciągu określonego pola. (Odziedziczone po IDataRecord) |
| GetValue(Int32) |
Zwraca 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() |
Rozwija czytnik danych do następnego wyniku podczas odczytywania wyników instrukcji sql wsadowych. |
| Read() |
IDataReader Przechodzi do następnego rekordu. |