IDataRecord Rozhraní

Definice

Poskytuje přístup k hodnotám sloupců v každém řádku pro objekt a DataReaderje implementován zprostředkovateli dat .NET, kteří přistupují k relačním databázím.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Odvozené

Příklady

Následující příklad vytvoří instance odvozených tříd, SqlConnection, SqlCommand, a SqlDataReader. Příklad čte data a zapíše je do konzoly. Nakonec příklad zavře SqlDataReadera pak .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

Poznámky

IDataReader Rozhraní IDataRecord umožňují zděděnou třídu implementovat DataReader třídu. To poskytuje způsob čtení jednoho nebo více datových proudů jen pro předávání sad výsledků. Další informace o DataReader třídách naleznete v tématu Načítání dat pomocí třídy DataReader.

Aplikace nevytvoří instanci IDataRecord rozhraní přímo, ale vytvoří instanci třídy, která dědí IDataRecord. Obvykle to provedete získáním DataReader metody ExecuteReader objektu Command .

Třídy, které dědí, musí implementovat všechny zděděné IDataRecord členy a obvykle definovat další členy pro přidání funkcí specifických pro zprostředkovatele.

Poskytovatelé implementují DataReader data v typech CLR (Common Language Runtime). Převod typu je definován pro některé typy, které nejsou zahrnuty v CLR. Tyto hodnoty mohou být přístupné jako alternativní typy, které vyhovují typům CLR. Například následující tabulka uvádí navrhované mapování z datových typů OLE DB na typy CLR s alternativními typy v závorkách.

Typ OLE DB Typ CLR
DBTYPE_BOOL Int16
DBTYPE_BSTR řetězec
DBTYPE_BYTES byte[]
DBTYPE_CY Decimal
DBTYPE_DATE DateTime
DBTYPE_DBDATE DateTime
DBTYPE_DBTIME DateTime
DBTYPE_DBTIMESTAMP DateTime
DBTYPE_DECIMAL Decimal
DBTYPE_EMPTY null
DBTYPE_ERROR ExternalException
DBTYPE_FILETIME DateTime
DBTYPE_GUID Průvodce
DBTYPE_HCHAPTER nepodporováno
DBTYPE_I1 SByte
DBTYPE_I2 Int16
DBTYPE_I4 Int32
DBTYPE_I8 Int64
DBTYPE_IDISPATCH objekt
DBTYPE_IUNKNOWN objekt
DBTYPE_NULL Dbnull.value
DBTYPE_NUMERIC Decimal
DBTYPE_PROPVARIANT objekt
DBTYPE_R4 Single
DBTYPE_R8 Double
DBTYPE_STR řetězec
DBTYPE_UDT nepodporováno
DBTYPE_UI1 byte (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (desítkové)
DBTYPE_VARIANT objekt
DBTYPE_VARNUMERIC nepodporováno
DBTYPE_WSTR řetězec

Vlastnosti

Name Description
FieldCount

Získá počet sloupců v aktuálním řádku.

Item[Int32]

Získá sloupec umístěný v zadaném indexu.

Item[String]

Získá sloupec se zadaným názvem.

Metody

Name Description
GetBoolean(Int32)

Získá hodnotu zadaného sloupce jako logickou hodnotu.

GetByte(Int32)

Získá 8bitovou celočíselnou hodnotu bez znaménka zadaného sloupce.

GetBytes(Int32, Int64, Byte[], Int32, Int32)

Načte datový proud bajtů ze zadaného posunu sloupce do vyrovnávací paměti jako pole počínaje daným posunem vyrovnávací paměti.

GetChar(Int32)

Získá hodnotu znaku zadaného sloupce.

GetChars(Int32, Int64, Char[], Int32, Int32)

Načte datový proud znaků ze zadaného posunu sloupce do vyrovnávací paměti jako pole počínaje daným posunem vyrovnávací paměti.

GetData(Int32)

IDataReader Vrátí pro zadaný sloupec pořadový řádek.

GetDataTypeName(Int32)

Získá informace o datovém typu pro zadané pole.

GetDateTime(Int32)

Získá datová hodnota data a času zadaného pole.

GetDecimal(Int32)

Získá číselnou hodnotu pevné pozice zadaného pole.

GetDouble(Int32)

Získá číslo s plovoucí desetinnou čárkou s dvojitou přesností zadaného pole.

GetFieldType(Int32)

Type Získá informace odpovídající typuObject, který by byl vrácen z GetValue(Int32).

GetFloat(Int32)

Získá číslo s plovoucí desetinnou čárkou s jednoduchou přesností zadaného pole.

GetGuid(Int32)

Vrátí hodnotu GUID zadaného pole.

GetInt16(Int32)

Získá 16bitovou celočíselnou hodnotu zadaného pole.

GetInt32(Int32)

Získá 32bitovou celočíselnou hodnotu zadaného pole.

GetInt64(Int32)

Získá 64bitovou celočíselnou hodnotu zadaného pole.

GetName(Int32)

Získá název pole, které chcete najít.

GetOrdinal(String)

Vrátí index pojmenovaného pole.

GetString(Int32)

Získá řetězcovou hodnotu zadaného pole.

GetValue(Int32)

Vrátí hodnotu zadaného pole.

GetValues(Object[])

Naplní pole objektů hodnotami sloupce aktuálního záznamu.

IsDBNull(Int32)

Vrátí, zda je zadané pole nastaveno na hodnotu null.

Platí pro