Sdílet prostřednictvím


IDataReader Rozhraní

Definice

Poskytuje způsob čtení jednoho nebo více dopředných datových proudů sad výsledků získaných spuštěním příkazu ve zdroji dat a je implementován zprostředkovateli dat .NET, kteří přistupují k relačním databázím.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
Odvozené
Implementuje

Příklady

Následující příklad vytvoří instance odvozených tříd, SqlConnection, SqlCommanda SqlDataReader. Příklad čte data a zapisuje 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

Rozhraní IDataReader a IDataRecord umožňují dědící třídě implementovat DataReader třídu, která poskytuje způsob čtení jednoho nebo více dopředných datových proudů sad výsledků. Další informace o DataReader třídách naleznete v tématu Načtení dat pomocí třídy DataReader.

Aplikace nevytvoří instanci IDataReader rozhraní přímo, ale vytvoří instanci třídy, která dědí IDataReader.

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

Změny provedené v sadě výsledků dotazu jiným procesem nebo vláknem při čtení dat mohou být viditelné uživateli třídy, která implementuje IDataReader. Přesné chování je však závislé na poskytovateli i načasování.

Poznámky pro implementátory

Chcete-li zvýšit konzistenci mezi zprostředkovateli dat rozhraní .NET Framework, pojmenujte dědící třídu ve formátu Prv Command where Prv je jednotná předpona přidělená všem třídám v určitém oboru názvů zprostředkovatele dat rozhraní .NET Framework. Je například Sql předpona SqlDataAdapter třídy v System.Data.SqlClient oboru názvů .

Uživatelé nevytvoří instanci DataReader třídy přímo. Místo toho získají DataReader instanci prostřednictvím ExecuteReader metody objektu Command . Proto byste měli konstruktory označit DataReader jako interní.

Vlastnosti

Depth

Získá hodnotu označující hloubku vnoření aktuálního řádku.

FieldCount

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

(Zděděno od IDataRecord)
IsClosed

Získá hodnotu označující, zda je čtečka dat uzavřena.

Item[Int32]

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

(Zděděno od IDataRecord)
Item[String]

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

(Zděděno od IDataRecord)
RecordsAffected

Získá počet řádků změněných, vložených nebo odstraněných spuštěním příkazu SQL.

Metody

Close()

Zavře IDataReader objekt .

Dispose()

Provede aplikací definované úlohy spojené s uvolněním nebo resetováním nespravovaných prostředků.

(Zděděno od IDisposable)
GetBoolean(Int32)

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

(Zděděno od IDataRecord)
GetByte(Int32)

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

(Zděděno od IDataRecord)
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.

(Zděděno od IDataRecord)
GetChar(Int32)

Získá znak hodnotu zadaného sloupce.

(Zděděno od IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

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

(Zděděno od IDataRecord)
GetData(Int32)

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

(Zděděno od IDataRecord)
GetDataTypeName(Int32)

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

(Zděděno od IDataRecord)
GetDateTime(Int32)

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

(Zděděno od IDataRecord)
GetDecimal(Int32)

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

(Zděděno od IDataRecord)
GetDouble(Int32)

Získá číslo s plovoucí desetinou čárkou dvojité přesnosti zadané pole.

(Zděděno od IDataRecord)
GetFieldType(Int32)

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

(Zděděno od IDataRecord)
GetFloat(Int32)

Získá číslo s plovoucí desetinou čárkou s jednou přesností zadané pole.

(Zděděno od IDataRecord)
GetGuid(Int32)

Vrátí hodnotu GUID zadaného pole.

(Zděděno od IDataRecord)
GetInt16(Int32)

Získá 16bitovou celočíselnou hodnotu se signýmým kódem zadaného pole.

(Zděděno od IDataRecord)
GetInt32(Int32)

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

(Zděděno od IDataRecord)
GetInt64(Int32)

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

(Zděděno od IDataRecord)
GetName(Int32)

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

(Zděděno od IDataRecord)
GetOrdinal(String)

Vrátí index pojmenovaného pole.

(Zděděno od IDataRecord)
GetSchemaTable()

Vrátí hodnotu DataTable , která popisuje metadata sloupce objektu IDataReader.

Vrátí hodnotu null , pokud spuštěný příkaz nevrátil žádnou sadu výsledků, nebo vrátí NextResult()falsehodnotu .

GetString(Int32)

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

(Zděděno od IDataRecord)
GetValue(Int32)

Vrátí hodnotu zadaného pole.

(Zděděno od IDataRecord)
GetValues(Object[])

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

(Zděděno od IDataRecord)
IsDBNull(Int32)

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

(Zděděno od IDataRecord)
NextResult()

Při čtení výsledků dávkových příkazů SQL posune čtečku dat na další výsledek.

Read()

Přejde na IDataReader další záznam.

Platí pro