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. Tuto třídu nelze dědit.

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable, System::Data::Common::IDbColumnSchemaGenerator
public ref class SqlDataReader : System::Data::Common::DbDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable, System.Data.Common.IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDbColumnSchemaGenerator
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDbColumnSchemaGenerator
    interface IDataReader
    interface IDataRecord
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator, IDisposable
Public Class SqlDataReader
Inherits DbDataReader
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 Microsoft.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]));
    }

}

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.

SensitivityClassification

SensitivityClassification Získá informace pomocí .SqlDataReader

VisibleFieldCount

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

Metody

Close()

SqlDataReader Zavře objekt.

Dispose(Boolean)

Poskytuje způsob čtení dopředného datového proudu řádků z databáze SQL Server. Tuto třídu nelze dědit.

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

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.

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.

GetFieldValueAsync<T>(Int32, CancellationToken)

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

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

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.

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.

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.

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.

GetTimeSpan(Int32)

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

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.

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

NextResult()

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

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.

Read()

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

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.

Explicitní implementace rozhraní

IDataRecord.GetData(Int32)

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

Platí pro