IDataRecord Rozhraní

Definice

Poskytuje přístup k hodnotám sloupců v jednotlivých řádcích pro DataReadera implementují zprostředkovatelé 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 , SqlConnectionSqlCommanda SqlDataReader. Příklad přečte data a zapíše je do konzoly. Nakonec příklad zavře SqlDataReadera pak SqlConnection.

using System;
using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadOrderData(str);
    }

    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]));
    }
}
Option Explicit On
Option Strict On

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub

    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

End Module

Poznámky

Rozhraní IDataReader a IDataRecord umožňují dědící třídě implementovat DataReader třídu. To poskytuje způsob čtení jednoho nebo více datových proudů pouze dopředných sad výsledků. Další informace o DataReader třídách najdete 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 prostřednictvím ExecuteReader objektu Command .

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

Poskytovatelé implementují DataReader modul , jsou vyžadováni ke zveřejnění dat v typech modulu CLR (Common Language Runtime). Převod typu je definován pro některé typy, které nejsou zahrnuty v CLR. K těmto hodnotám je možné přistupovat jako k alternativním typům, které odpovídají typům CLR. Jako příklad uvádí následující tabulka 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 Identifikátor GUID
DBTYPE_HCHAPTER nepodporováno
DBTYPE_I1 SByte
DBTYPE_I2 Int16
DBTYPE_I4 Int32
DBTYPE_I8 Int64
DBTYPE_IDISPATCH object
DBTYPE_IUNKNOWN object
DBTYPE_NULL Dbnull.value
DBTYPE_NUMERIC Decimal
DBTYPE_PROPVARIANT object
DBTYPE_R4 Jednoduché
DBTYPE_R8 dvojité
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 object
DBTYPE_VARNUMERIC nepodporováno
DBTYPE_WSTR řetězec

Vlastnosti

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

GetBoolean(Int32)

Získá hodnotu zadaného sloupce jako logická hodnota.

GetByte(Int32)

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

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

Načte stream 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)

Přeč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)

Vrátí hodnotu IDataReader pro zadanou řadovou řadu sloupce.

GetDataTypeName(Int32)

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

GetDateTime(Int32)

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

GetDecimal(Int32)

Získá číselnou hodnotu s pevnou pozicí zadaného pole.

GetDouble(Int32)

Získá číslo s plovoucí desetinou čá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á jednopřesné číslo s plovoucí desetinou čárkou zadaného pole.

GetGuid(Int32)

Vrátí hodnotu GUID zadaného pole.

GetInt16(Int32)

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

GetInt32(Int32)

Získá 32bitovou celočíselnou hodnotu 32bitového signéhohoho hodnoty zadaného pole.

GetInt64(Int32)

Získá 64bitovou celočíselnou hodnotu 64bitového signedho hodnoty 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 sloupců aktuálního záznamu.

IsDBNull(Int32)

Vrátí, jestli je zadané pole nastavené na hodnotu null.

Platí pro