IDataRecord 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 dostęp do wartości kolumn w każdym wierszu dla DataReader
elementu i jest implementowany przez dostawców danych platformy .NET, którzy uzyskują dostęp do relacyjnych baz danych.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Pochodne
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ą dziedziczonej klasie zaimplementowanie DataReader
klasy. Zapewnia to 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 IDataRecord , ale tworzy wystąpienie klasy dziedziczonej IDataRecord. Zazwyczaj można to zrobić, uzyskując metodę DataReader
za pośrednictwem ExecuteReader
metody Command
obiektu.
Klasy dziedziczone IDataRecord muszą implementować wszystkie dziedziczone elementy członkowskie i zwykle definiują dodatkowe elementy członkowskie w celu dodania funkcji specyficznych dla dostawcy.
Dostawcy wdrażający element DataReader
są zobowiązani do uwidaczniania danych w typach środowiska uruchomieniowego języka wspólnego (CLR). Wymuszanie typu jest definiowane dla niektórych typów nieuwzględnianych w CLR. Te wartości mogą być dostępne jako typy alternatywne zgodne z typami CLR. Na przykład poniższa tabela zawiera sugerowane mapowania z typów danych OLE DB na typy CLR z alternatywnymi typami nawiasów.
Typ OLE DB | Typ CLR |
---|---|
DBTYPE_BOOL | Int16 |
DBTYPE_BSTR | ciąg |
DBTYPE_BYTES | byte[] |
DBTYPE_CY | Liczba dziesiętna |
DBTYPE_DATE | DateTime |
DBTYPE_DBDATE | DateTime |
DBTYPE_DBTIME | DateTime |
DBTYPE_DBTIMESTAMP | DateTime |
DBTYPE_DECIMAL | Liczba dziesiętna |
DBTYPE_EMPTY | null |
DBTYPE_ERROR | Externalexception |
DBTYPE_FILETIME | DateTime |
DBTYPE_GUID | Guid (identyfikator GUID) |
DBTYPE_HCHAPTER | nieobsługiwane |
DBTYPE_I1 | SByte |
DBTYPE_I2 | Int16 |
DBTYPE_I4 | Int32 |
DBTYPE_I8 | Int64 |
DBTYPE_IDISPATCH | object |
DBTYPE_IUNKNOWN | object |
DBTYPE_NULL | Dbnull.value |
DBTYPE_NUMERIC | Liczba dziesiętna |
DBTYPE_PROPVARIANT | object |
DBTYPE_R4 | Pojedynczy |
DBTYPE_R8 | Double |
DBTYPE_STR | ciąg |
DBTYPE_UDT | nieobsługiwane |
DBTYPE_UI1 | byte (Int16) |
DBTYPE_UI2 | UInt16 (Int32) |
DBTYPE_UI4 | UInt32 (Int64) |
DBTYPE_UI8 | UInt64 (dziesiętny) |
DBTYPE_VARIANT | object |
DBTYPE_VARNUMERIC | nieobsługiwane |
DBTYPE_WSTR | ciąg |
Właściwości
FieldCount |
Pobiera liczbę kolumn w bieżącym wierszu. |
Item[Int32] |
Pobiera kolumnę znajdującą się w określonym indeksie. |
Item[String] |
Pobiera kolumnę o określonej nazwie. |
Metody
GetBoolean(Int32) |
Pobiera wartość określonej kolumny jako wartość logiczną. |
GetByte(Int32) |
Pobiera 8-bitową wartość niepodpisanej liczby całkowitej określonej kolumny. |
GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Odczytuje strumień bajtów z określonej kolumny przesunięcia do buforu jako tablicy, począwszy od danego przesunięcia buforu. |
GetChar(Int32) |
Pobiera wartość znaku określonej kolumny. |
GetChars(Int32, Int64, Char[], Int32, Int32) |
Odczytuje strumień znaków z określonego przesunięcia kolumny do buforu jako tablicy, począwszy od danego przesunięcia buforu. |
GetData(Int32) |
Zwraca wartość IDataReader dla określonej kolumny porządkowej. |
GetDataTypeName(Int32) |
Pobiera informacje o typie danych dla określonego pola. |
GetDateTime(Int32) |
Pobiera wartość danych daty i godziny określonego pola. |
GetDecimal(Int32) |
Pobiera wartość liczbową o stałym położeniu określonego pola. |
GetDouble(Int32) |
Pobiera liczbę zmiennoprzecinkowa o podwójnej precyzji określonego pola. |
GetFieldType(Int32) |
Type Pobiera informacje odpowiadające typowiObject, który zostanie zwrócony z klasy GetValue(Int32). |
GetFloat(Int32) |
Pobiera liczbę zmiennoprzecinkową o pojedynczej precyzji określonego pola. |
GetGuid(Int32) |
Zwraca wartość identyfikatora GUID określonego pola. |
GetInt16(Int32) |
Pobiera 16-bitową wartość liczby całkowitej ze znakiem określonego pola. |
GetInt32(Int32) |
Pobiera wartość 32-bitowej liczby całkowitej ze znakiem określonego pola. |
GetInt64(Int32) |
Pobiera wartość 64-bitowej liczby całkowitej ze znakiem określonego pola. |
GetName(Int32) |
Pobiera nazwę pola do znalezienia. |
GetOrdinal(String) |
Zwróć indeks nazwanego pola. |
GetString(Int32) |
Pobiera wartość ciągu określonego pola. |
GetValue(Int32) |
Zwróć wartość określonego pola. |
GetValues(Object[]) |
Wypełnia tablicę obiektów wartościami kolumn bieżącego rekordu. |
IsDBNull(Int32) |
Zwróć informację, czy określone pole jest ustawione na wartość null. |