Udostępnij za pośrednictwem


IDataRecord Interfejs

Definicja

Zapewnia dostęp do wartości kolumn w każdym wierszu dla DataReaderelementu 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.

Dotyczy