IDataReader Rozhraní

Definice

Poskytuje způsob čtení jednoho nebo více datových proudů sady výsledků, které byly získány spuštěním příkazu ve zdroji dat, a jsou implementovány .NET Framework zprostředkovateli dat, kteří přistupují k relačním databázím.Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by .NET Framework data providers that access relational databases.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
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.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. Tento příklad čte data a zapisuje je do konzoly.The example reads through the data, writing it out to the console. Nakonec příklad zavře SqlDataReadera pak SqlConnection.Finally, the example closes the SqlDataReader, then the 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 record)
    {
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[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ění třídy implementovat třídu DataReader, která poskytuje způsob čtení jednoho nebo více datových proudů s pouze dopředné sady výsledků.The IDataReader and IDataRecord interfaces allow an inheriting class to implement a DataReader class, which provides a means of reading one or more forward-only streams of result sets. Další informace o třídách DataReader najdete v tématu načtení dat pomocí objektu DataReader.For more information about DataReader classes, see Retrieving Data Using a DataReader.

Aplikace nevytváří instanci rozhraní IDataReader přímo, ale vytvoří instanci třídy, která dědí IDataReader.An application does not create an instance of the IDataReader interface directly, but creates an instance of a class that inherits 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 poskytovatele.Classes that inherit IDataReader must implement the inherited members, and typically define additional members to add provider-specific functionality.

Změny provedené v sadě výsledků, která je výsledkem jiného procesu nebo vlákna během čtení dat, mohou být viditelné uživateli třídy, která implementuje IDataReader.Changes made to a result set by another process or thread while data is being read may be visible to the user of a class that implements an IDataReader. Přesné chování je však závislé na poskytovateli i na časování.However, the precise behavior is both provider and timing dependent.

Poznámky pro implementátory

Chcete-li zvýšit konzistenci mezi .NET Framework zprostředkovateli dat, pojmenujte třídu dědění ve formuláři Prv příkazu, kde Prv je jednotná předpona poskytnutá všem třídám v konkrétním oboru názvů .NET Framework zprostředkovatele dat.To promote consistency among .NET Framework data providers, name the inheriting class in the form Prv Command where Prv is the uniform prefix given to all classes in a specific .NET Framework data provider namespace. Například Sql je předpona SqlDataAdapter třídy v oboru názvů System.Data.SqlClient.For example, Sql is the prefix of the SqlDataAdapter class in the System.Data.SqlClient namespace.

Uživatelé nevytváří instanci DataReader třídy přímo.Users do not create an instance of a DataReader class directly. Místo toho získají DataReader instanci prostřednictvím metody ExecuteReader objektu Command.Instead, they obtain the DataReader instance through the ExecuteReader method of the Command object. Proto byste měli označit DataReader konstruktory jako interní.Therefore, you should mark DataReader constructors as internal.

Vlastnosti

Depth

Získá hodnotu označující hloubku vnoření pro aktuální řádek.Gets a value indicating the depth of nesting for the current row.

FieldCount

Získá počet sloupců v aktuálním řádku.Gets the number of columns in the current row.

(Zděděno od IDataRecord)
IsClosed

Načte hodnotu, která označuje, jestli je čtecí modul dat zavřený.Gets a value indicating whether the data reader is closed.

Item[Int32]

Získá sloupec umístěný v zadaném indexu.Gets the column located at the specified index.

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

Získá sloupec se zadaným názvem.Gets the column with the specified name.

(Zděděno od IDataRecord)
RecordsAffected

Vrátí počet řádků, které byly změněny, vloženy nebo smazány spuštěním příkazu jazyka SQL.Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.

Metody

Close()

Zavře objekt IDataReader.Closes the IDataReader Object.

Dispose()

Provádí úkoly definované aplikací, které jsou spojeny s uvolněním nebo obnovením nespravovaných prostředků.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

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

Získá hodnotu zadaného sloupce jako logickou hodnotu.Gets the value of the specified column as a Boolean.

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

Získá 8bitové unsigned integer hodnotu zadaného sloupce.Gets the 8-bit unsigned integer value of the specified column.

(Zděděno od IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Přečte datový proud bajtů z určeného posunutí sloupce do vyrovnávací paměti jako pole, počínaje daným posunutím vyrovnávací paměti.Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

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

Načte hodnotu znaku zadaného sloupce.Gets the character value of the specified column.

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

Přečte stream znaků ze zadaného sloupce posune do vyrovnávací paměti jako pole, počínaje daným posunutím vyrovnávací paměti.Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

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

Vrátí IDataReader pro zadané pořadí sloupce.Returns an IDataReader for the specified column ordinal.

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

Načte informace o datovém typu pro zadané pole.Gets the data type information for the specified field.

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

Získá hodnotu data a času zadaného pole.Gets the date and time data value of the specified field.

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

Získá číselnou hodnotu pevné pozice určeného pole.Gets the fixed-position numeric value of the specified field.

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

Získá číslo dvojité přesnosti s plovoucí desetinnou čárkou pro zadané pole.Gets the double-precision floating point number of the specified field.

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

Získá informace o Type odpovídající typu Object, který by byl vrácen z GetValue(Int32).Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

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

Získá číslo s plovoucí desetinnou čárkou s jednoduchou přesností zadaného pole.Gets the single-precision floating point number of the specified field.

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

Vrátí hodnotu identifikátoru GUID určeného pole.Returns the GUID value of the specified field.

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

Načte 16bitové celočíselnou hodnotu se znaménkem určeného pole.Gets the 16-bit signed integer value of the specified field.

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

Získá hodnotu podepsaného celého čísla se znaménkem (32) pro zadané pole.Gets the 32-bit signed integer value of the specified field.

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

Získá hodnotu podepsaného celého čísla se znaménkem (64) pro zadané pole.Gets the 64-bit signed integer value of the specified field.

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

Získá název pole, které se má najít.Gets the name for the field to find.

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

Vrátí index pojmenovaného pole.Return the index of the named field.

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

Vrátí DataTable, který popisuje metadata sloupce IDataReader.Returns a DataTable that describes the column metadata of the IDataReader.

GetString(Int32)

Získá řetězcovou hodnotu určeného pole.Gets the string value of the specified field.

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

Vrátí hodnotu zadaného pole.Return the value of the specified field.

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

Naplní pole objektů hodnotami sloupce aktuálního záznamu.Populates an array of objects with the column values of the current record.

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

Vrátí, zda je zadané pole nastaveno na hodnotu null.Return whether the specified field is set to null.

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

Při čtení výsledků příkazů Batch SQL převede data čtečky na další výsledek.Advances the data reader to the next result, when reading the results of batch SQL statements.

Read()

Posune IDataReader k dalšímu záznamu.Advances the IDataReader to the next record.

Platí pro