Sdílet prostřednictvím


SqlDataReader Třída

Definice

Poskytuje způsob čtení dopředného datového proudu řádků z databáze SQL Server. Tato třída se nemůže dědit.

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class SqlDataReader : System::Data::Common::DbDataReader, System::Data::Common::IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, System.Data.Common.IDbColumnSchemaGenerator
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
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
    interface IDbColumnSchemaGenerator
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator
Dědičnost
SqlDataReader
Dědičnost
Dědičnost
SqlDataReader
Implementuje

Příklady

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

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

Chcete-li vytvořit SqlDataReader, je nutné volat ExecuteReader metodu objektu SqlCommand namísto přímého použití konstruktoru.

SqlDataReader Během použití je přidružená SqlConnection služba zaneprázdněna obsluhou SqlDataReadera žádné jiné operace nelze provádět s SqlConnection jiným než jeho zavřením. To je tento případ, dokud Close není volána metoda SqlDataReader . Například nemůžete načíst výstupní parametry, dokud nevoláte Close.

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

IsClosed a RecordsAffected jsou jediné vlastnosti, které můžete volat po zavření objektu SqlDataReader . I když vlastnost RecordsAffected může být přístupná, když SqlDataReader existuje, vždy volejte Close před vrácením hodnoty , RecordsAffected aby se zaručila přesná návratová hodnota.

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

Poznámka

Pro zajištění optimálního výkonu SqlDataReader se vyhnete vytváření nepotřebných objektů nebo vytváření nepotřebných kopií dat. Proto více volání metod, například GetValue vrátit odkaz na stejný objekt. Pokud upravujete podkladovou hodnotu objektů vrácených metodami, jako GetValueje .

Vlastnosti

Connection

Získá objekt SqlConnection, který je přidružen k tomuto objektu SqlDataReader.

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á označ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řadové číslo sloupci.

Item[String]

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

RecordsAffected

Získá počet řádků změněných, vložených nebo odstraněných provedením transact-SQL příkaz.

VisibleFieldCount

Získá počet polí v objektu SqlDataReader , která nejsou skryta.

Metody

Close()

Zavře objekt SqlDataReader .

Close()

Zavře objekt DbDataReader .

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

Asynchronně zavře DbDataReader objekt.

(Zděděno od DbDataReader)
CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy sloužící 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)

Poskytuje způsob čtení dopředného datového proudu řádků z databáze SQL Server. Tato třída se nemůže dědit.

Dispose(Boolean)

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

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

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

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

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

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

GetByte(Int32)

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

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

Načte 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 stream znaků ze zadaného posunu sloupce do vyrovnávací paměti jako pole počínaje daným posunem vyrovnávací paměti.

GetColumnSchema()

Získá kolekci schématu sloupce jen pro čtení.

GetColumnSchemaAsync(CancellationToken)

Toto je asynchronní verze nástroje GetColumnSchema(DbDataReader). Poskytovatelé by měli přepsat příslušnou implementací. Volitelně cancellationToken může být respektována. Výchozí implementace vyvolá synchronní GetColumnSchema(DbDataReader) volání a vrátí dokončenou úlohu. Výchozí implementace vrátí zrušenou úlohu, pokud byla předána již zrušená cancellationTokenúloha . Výjimky vyvolané nástrojem GetColumnSchema(DbDataReader) budou oznámeny prostřednictvím vrácené vlastnosti Task Exception (Výjimka úkolu).

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

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

GetData(Int32)

Vrátí čtečku vnořených 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 objekt.

GetDateTimeOffset(Int32)

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

GetDbDataReader(Int32)

DbDataReader Vrátí objekt pro pořadové číslo požadovaného sloupce, který lze přepsat implementací specifickou pro zprostředkovatele.

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

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

GetDouble(Int32)

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

GetEnumerator()

Vrátí hodnotu IEnumerator , která iteruje přes SqlDataReader.

GetFieldType(Int32)

Type Získá objekt , který je 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.

GetFieldValue<T>(Int32)

Získá hodnotu zadaného sloupce jako požadovaný typ.

(Zděděno od DbDataReader)
GetFieldValueAsync<T>(Int32)

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

(Zděděno od DbDataReader)
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, CancellationToken)

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í desetinou čárkou s jednou přesností.

GetGuid(Int32)

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

GetHashCode()

Slouží jako výchozí hashovací funkce.

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

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

GetInt32(Int32)

Získá hodnotu zadaného sloupce jako 32bitové podepsané celé číslo.

GetInt64(Int32)

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

GetLifetimeService()
Zastaralé.

Načte aktuální životnost objektu služby, 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á pořadové číslo sloupce vzhledem k názvu sloupce.

GetProviderSpecificFieldType(Int32)

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

GetProviderSpecificValue(Int32)

Získá , Object který je reprezentace podkladové hodnoty zprostředkovatele specifické.

GetProviderSpecificValues(Object[])

Získá pole objektů, které jsou reprezentací podkladových hodnot specifických pro zprostředkovatele.

GetSchemaTable()

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

GetSchemaTable()

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

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

Toto je asynchronní verze nástroje GetSchemaTable(). Poskytovatelé by měli přepsat příslušnou implementací. Volitelně cancellationToken může být respektována. Výchozí implementace vyvolá synchronní GetSchemaTable() volání a vrátí dokončenou úlohu. Výchozí implementace vrátí zrušenou úlohu, pokud byla předána již zrušená cancellationTokenúloha . Výjimky vyvolané nástrojem GetSchemaTable() budou oznámeny prostřednictvím vrácené vlastnosti Task Exception (Výjimka úkolu).

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

GetSqlValues(Object[])

Vyplní poleObject, které obsahuje hodnoty pro všechny sloupce v záznamu vyjádřené jako SQL Server typy.

GetSqlXml(Int32)

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

GetStream(Int32)

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

GetStream(Int32)

Získá datový proud pro načtení dat ze zadaného sloupce.

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

GetTextReader(Int32)

Získá čtečku textu pro načtení dat ze sloupce.

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

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

GetType()

Type Získá z 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á životnost objektu služby, který řídí zásady životnosti pro tuto instanci.

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

Určuje, zda se zadaná hodnota CommandBehavior shoduje se zadaným parametrem SqlDataReader .

IsDBNull(Int32)

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

IsDBNullAsync(Int32)

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

(Zděděno od DbDataReader)
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, CancellationToken)

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 Objectsouboru .

(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 příkazů Transact-SQL posune čtečku dat na další výsledek.

NextResultAsync()

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

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

Asynchronní verze NextResult(), která při čtení výsledků dávkových příkazů Transact-SQL posune čtečku dat k dalšímu výsledku.

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.

NextResultAsync(CancellationToken)

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

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

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

ReadAsync()

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

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

Asynchronní verze nástroje Read(), která přejde na SqlDataReader 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.

ReadAsync(CancellationToken)

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

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

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

(Zděděno od Object)

Explicitní implementace rozhraní

IDataReader.Close()

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

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

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

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

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

IDataRecord.GetData(Int32)

Popis tohoto člena najdete 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í

CanGetColumnSchema(DbDataReader)

Získá hodnotu, která označuje, zda DbDataReader lze získat schéma sloupce.

GetColumnSchema(DbDataReader)

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

Cast<TResult>(IEnumerable)

Přetypuje prvky objektu na IEnumerable zadaný typ.

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede objekt na IEnumerableIQueryable.

Platí pro

Viz také