Sdílet prostřednictvím


SqlDataReader Třída

Definice

Poskytuje způsob čtení datového proudu jen pro předávání řádků z databáze SQL Serveru. Tuto třídu nelze zdědit.

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
type SqlDataReader = class
    inherit MarshalByRefObject
    interface IEnumerable
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Dědičnost
SqlDataReader
Dědičnost
Dědičnost
SqlDataReader
Implementuje

Příklady

Následující příklad vytvoří SqlConnection, a SqlCommand, a a SqlDataReader. Příklad čte data a zapíše je do okna konzoly. Kód pak zavře SqlDataReader. Automaticky SqlConnection se zavře na konci using bloku kódu.

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

Chcete-li vytvořit SqlDataReader, musíte volat ExecuteReader metodu objektu SqlCommand namísto přímo pomocí konstruktoru.

Zatímco se SqlDataReader používá, přidružené SqlConnection je zaneprázdněn obsluha SqlDataReadera žádné jiné operace nelze provádět na SqlConnection jiném než uzavření. Jedná se o případ, dokud Close se nevolá metoda SqlDataReader . Například nelze načíst výstupní parametry, dokud nebudete volat Close.

Změny provedené v sadě výsledků jiným procesem nebo vláknem při čtení dat mohou být viditelné pro uživatele SqlDataReader. Přesné chování je však závislé na načasování.

IsClosed a RecordsAffected jsou jedinými vlastnostmi, které můžete volat po zavření SqlDataReader . Ačkoli vlastnost RecordsAffected může být přístupná, zatímco SqlDataReader existuje, vždy volání Close před vrácením hodnoty RecordsAffected , která zaručuje přesnou návratovou hodnotu.

Při použití sekvenčního přístupu (CommandBehavior.SequentialAccess), bude vyvolána, InvalidOperationException pokud SqlDataReader je pozice pokročilá a pokusí se o další operaci čtení v předchozím sloupci.

Poznámka:

Pokud chcete dosáhnout optimálního výkonu, SqlDataReader vyhněte se vytváření nepotřebných objektů nebo vytváření nepotřebných kopií dat. Proto více volání metod, jako je například GetValue vrácení odkazu na stejný objekt. Buďte opatrní, pokud upravujete podkladovou hodnotu objektů vrácených metodami, jako GetValueje .

Vlastnosti

Name Description
Connection

Získá přidružené k SqlConnectionSqlDataReader.

Depth

Získá hodnotu, která označuje hloubku vnoření pro aktuální řádek.

FieldCount

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

HasRows

Získá hodnotu, která určuje, zda SqlDataReader obsahuje jeden nebo více řádků.

IsClosed

Načte logickou hodnotu, která označuje, zda byla zadaná SqlDataReader instance uzavřena.

Item[Int32]

Získá hodnotu zadaného sloupce v jeho nativním formátu vzhledem k pořadí sloupců.

Item[String]

Získá hodnotu zadaného sloupce v jeho nativním formátu vzhledem k názvu sloupce.

RecordsAffected

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

VisibleFieldCount

Získá početpolích SqlDataReader

Metody

Name Description
Close()

SqlDataReader Zavře objekt.

CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
Dispose()

Uvolní všechny prostředky používané aktuální instancí DbDataReader třídy.

(Zděděno od DbDataReader)
Dispose(Boolean)

Uvolní nespravované prostředky používané DbDataReader a volitelně uvolní spravované prostředky.

(Zděděno od DbDataReader)
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

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

GetByte(Int32)

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

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

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

GetChar(Int32)

Získá hodnotu zadaného sloupce jako jeden znak.

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

Načte datový proud znaků ze zadaného posunu sloupce do vyrovnávací paměti jako pole začínající na daném posunu vyrovnávací paměti.

GetData(Int32)

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

GetData(Int32)

Vrátí vnořenou čtečku dat pro požadovaný sloupec.

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

Získá řetězec představující datový typ zadaného sloupce.

GetDateTime(Int32)

Získá hodnotu zadaného sloupce jako DateTime objektu.

GetDateTimeOffset(Int32)

Načte hodnotu zadaného sloupce jako objektu DateTimeOffset .

GetDbDataReader(Int32)

DbDataReader Vrátí objekt pro požadovaný řadový sloupec, který lze přepsat pomocí implementace specifické pro zprostředkovatele.

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

Získá hodnotu zadaného sloupce jako Decimal objektu.

GetDouble(Int32)

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

GetEnumerator()

IEnumerator Vrátí iteruje přes SqlDataReader.

GetFieldType(Int32)

Type Získá to datový typ objektu.

GetFieldValue<T>(Int32)

Synchronně získá hodnotu zadaného sloupce jako typ. GetFieldValueAsync<T>(Int32, CancellationToken) je asynchronní verze této metody.

GetFieldValueAsync<T>(Int32, CancellationToken)

Asynchronně získá hodnotu zadaného sloupce jako typ. GetFieldValue<T>(Int32) je synchronní verze této metody.

GetFieldValueAsync<T>(Int32)

Asynchronně získá hodnotu zadaného sloupce jako požadovaný typ.

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

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

GetGuid(Int32)

Získá hodnotu zadaného sloupce jako globálně jedinečný identifikátor (GUID).

GetHashCode()

Slouží jako výchozí funkce hash.

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

Získá hodnotu zadaného sloupce jako 16bitové celé číslo se signed.

GetInt32(Int32)

Získá hodnotu zadaného sloupce jako 32bitové signed integer.

GetInt64(Int32)

Získá hodnotu zadaného sloupce jako 64bitové celé číslo se signedem.

GetLifetimeService()
Zastaralé.

Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

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

Získá název zadaného sloupce.

GetOrdinal(String)

Získá řadový sloupec s názvem sloupce.

GetProviderSpecificFieldType(Int32)

Object Získá, který je reprezentace základního typu pole specifického pro zprostředkovatele.

GetProviderSpecificValue(Int32)

Object Získá, která je reprezentace konkrétní hodnoty podkladového zprostředkovatele.

GetProviderSpecificValues(Object[])

Získá pole objektů, které jsou reprezentace podkladového zprostředkovatele specifické hodnoty.

GetSchemaTable()

Vrátí hodnotu DataTable , která popisuje metadata SqlDataReadersloupce .

GetSqlBinary(Int32)

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

GetSqlBoolean(Int32)

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

GetSqlByte(Int32)

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

GetSqlBytes(Int32)

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

GetSqlChars(Int32)

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

GetSqlDateTime(Int32)

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

GetSqlDecimal(Int32)

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

GetSqlDouble(Int32)

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

GetSqlGuid(Int32)

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

GetSqlInt16(Int32)

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

GetSqlInt32(Int32)

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

GetSqlInt64(Int32)

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

GetSqlMoney(Int32)

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

GetSqlSingle(Int32)

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

GetSqlString(Int32)

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

GetSqlValue(Int32)

Vrátí hodnotu dat v zadaném sloupci jako typ SQL Serveru.

GetSqlValues(Object[])

Vyplní pole Object obsahující hodnoty pro všechny sloupce v záznamu vyjádřené jako typy SQL Serveru.

GetSqlXml(Int32)

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

GetStream(Int32)

Načte binární, image, varbinary, UDT a variantní datové typy jako Stream.

GetString(Int32)

Získá hodnotu zadaného sloupce jako řetězec.

GetTextReader(Int32)

Načte datové typy Char, NChar, NText, NVarChar, text, varChar a Variant jako TextReaderdatový typ .

GetTimeSpan(Int32)

Načte hodnotu zadaného sloupce jako objektu TimeSpan .

GetType()

Získá Type aktuální instance.

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

Získá hodnotu zadaného sloupce v jeho nativním formátu.

GetValues(Object[])

Naplní pole objektů hodnotami sloupců aktuálního řádku.

GetXmlReader(Int32)

Načte data typu XML jako .XmlReader

InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

Určuje, zda zadané CommandBehavior odpovídá zadané hodnotě SqlDataReader .

IsDBNull(Int32)

Získá hodnotu, která označuje, zda sloupec obsahuje neexistující nebo chybějící hodnoty.

IsDBNullAsync(Int32, CancellationToken)

Asynchronní verze IsDBNull(Int32), která získá hodnotu, která označuje, zda sloupec obsahuje neexistující nebo chybějící hodnoty.

Token zrušení lze použít k vyžádání, aby byla operace zrušena před vypršením časového limitu příkazu. Výjimky budou hlášeny prostřednictvím vráceného objektu Task.

IsDBNullAsync(Int32)

Asynchronně získá hodnotu, která označuje, zda sloupec obsahuje neexistující nebo chybějící hodnoty.

(Zděděno od DbDataReader)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu.

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

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

NextResultAsync()

Asynchronně přejde čtenáře na další výsledek při čtení výsledků dávky příkazů.

(Zděděno od DbDataReader)
NextResultAsync(CancellationToken)

Asynchronní verze NextResult(), která předčítá čtečku dat na další výsledek při čtení výsledků dávkových Transact-SQL příkazů.

Token zrušení lze použít k vyžádání, aby byla operace zrušena před vypršením časového limitu příkazu. Výjimky budou hlášeny prostřednictvím vráceného objektu Task.

Read()

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

ReadAsync()

Asynchronně přejde čtenáře na další záznam v sadě výsledků.

(Zděděno od DbDataReader)
ReadAsync(CancellationToken)

Asynchronní verze Read(), která přejde SqlDataReader na další záznam.

Token zrušení lze použít k vyžádání, aby byla operace zrušena před vypršením časového limitu příkazu. Výjimky budou hlášeny prostřednictvím vráceného objektu Task.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
IDataReader.Close()

Popis tohoto člena naleznete v tématu Close().

(Zděděno od DbDataReader)
IDataReader.GetSchemaTable()

Popis tohoto člena naleznete v tématu GetSchemaTable().

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

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

IDataRecord.GetData(Int32)

Popis tohoto člena naleznete v tématu GetData(Int32).

(Zděděno od DbDataReader)
IDisposable.Dispose()

Uvolní všechny prostředky, které používá čtečka dat.

IEnumerable.GetEnumerator()

Vrátí enumerátor, který lze použít k iteraci v kolekci položek.

Metody rozšíření

Name Description
AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede IEnumerable na IQueryable.

CanGetColumnSchema(DbDataReader)

Získá hodnotu, která označuje, zda DbDataReader může získat schéma sloupce.

Cast<TResult>(IEnumerable)

Přetypuje prvky IEnumerable na zadaný typ.

GetColumnSchema(DbDataReader)

Získá schéma sloupce (DbColumnkolekce) pro .DbDataReader

OfType<TResult>(IEnumerable)

Filtruje prvky IEnumerable na základě zadaného typu.

Platí pro

Viz také