Udostępnij za pośrednictwem


SqlDataReader Klasa

Definicja

Umożliwia odczytywanie strumienia wierszy tylko do przodu z bazy danych SQL Server. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
SqlDataReader
Implementuje

Przykłady

Poniższy przykład tworzy obiekt SqlConnection, , SqlCommandi SqlDataReader. Przykład odczytuje dane, zapisuj je w oknie konsoli. Następnie kod zamyka element SqlDataReader. Element SqlConnection jest zamykany automatycznie na końcu using bloku kodu.

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]));
    }

}

Uwagi

Aby utworzyć obiekt , należy wywołać ExecuteReader metodę SqlDataReaderSqlCommand obiektu zamiast bezpośrednio przy użyciu konstruktora.

SqlDataReader Gdy element jest używany, skojarzony SqlConnection jest zajęty obsługą SqlDataReader, a żadne inne operacje nie mogą być wykonywane na SqlConnection innym niż jego zamykanie. Tak jest, dopóki Close metoda metody SqlDataReader nie zostanie wywołana. Na przykład nie można pobrać parametrów wyjściowych do momentu wywołania metody Close.

Zmiany wprowadzone w zestawie wyników przez inny proces lub wątek podczas odczytywania danych mogą być widoczne dla użytkownika obiektu SqlDataReader. Jednak dokładne zachowanie zależy od czasu.

IsClosed i RecordsAffected są jedynymi właściwościami, które można wywołać po SqlDataReader zamknięciu. RecordsAffected Mimo że dostęp do właściwości może być uzyskiwany, gdy SqlDataReader właściwość istnieje, zawsze należy wywołać Close metodę przed zwróceniem wartości w RecordsAffected celu zagwarantowania dokładnej wartości zwracanej.

W przypadku korzystania z dostępu sekwencyjnego (CommandBehavior.SequentialAccess) element zostanie podniesiony, InvalidOperationException jeśli SqlDataReader pozycja jest zaawansowana, a inna operacja odczytu zostanie podjęta w poprzedniej kolumnie.

Uwaga

Aby uzyskać optymalną wydajność, SqlDataReader należy unikać tworzenia niepotrzebnych obiektów lub tworzenia niepotrzebnych kopii danych. W związku z tym wiele wywołań do metod, takich jak GetValue zwrócenie odwołania do tego samego obiektu. Zachowaj ostrożność, jeśli modyfikujesz podstawową wartość obiektów zwracanych przez metody, takie jak GetValue.

Właściwości

Connection

Pobiera klasę SqlConnection skojarzoną z klasą SqlDataReader.

Depth

Pobiera wartość wskazującą głębokość zagnieżdżania dla bieżącego wiersza.

FieldCount

Pobiera liczbę kolumn w bieżącym wierszu.

HasRows

Pobiera wartość wskazującą, czy SqlDataReader element zawiera co najmniej jeden wiersz.

IsClosed

Pobiera wartość logiczną wskazującą, czy określone SqlDataReader wystąpienie zostało zamknięte.

Item[Int32]

Pobiera wartość określonej kolumny w formacie natywnym, biorąc pod uwagę liczbę porządkową kolumny.

Item[String]

Pobiera wartość określonej kolumny w formacie natywnym, biorąc pod uwagę nazwę kolumny.

RecordsAffected

Pobiera liczbę wierszy zmienionych, wstawionych lub usuniętych przez wykonanie instrukcji Języka Transact-SQL.

SensitivityClassification

Pobiera informacje za SensitivityClassification pomocą polecenia SqlDataReader.

VisibleFieldCount

Pobiera liczbę pól w polach SqlDataReader , które nie są ukryte.

Metody

Close()

SqlDataReader Zamyka obiekt.

Dispose(Boolean)

Umożliwia odczytywanie strumienia wierszy tylko do przodu z bazy danych SQL Server. Klasa ta nie może być dziedziczona.

GetBoolean(Int32)

Pobiera wartość określonej kolumny jako wartość logiczną.

GetByte(Int32)

Pobiera wartość określonej kolumny jako bajt.

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

Odczytuje strumień bajtów z określonego przesunięcia kolumny do buforu tablicy rozpoczynającej się od danego przesunięcia buforu.

GetChar(Int32)

Pobiera wartość określonej kolumny jako pojedynczy znak.

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

Odczytuje strumień znaków z określonego przesunięcia kolumny do buforu jako tablicę rozpoczynającą się od danego przesunięcia buforu.

GetColumnSchema()

Pobiera kolekcję schematów kolumn tylko do odczytu.

GetDataTypeName(Int32)

Pobiera ciąg reprezentujący typ danych określonej kolumny.

GetDateTime(Int32)

Pobiera wartość określonej kolumny jako DateTime obiekt.

GetDateTimeOffset(Int32)

Pobiera wartość określonej kolumny jako DateTimeOffset obiekt.

GetDecimal(Int32)

Pobiera wartość określonej kolumny jako Decimal obiekt.

GetDouble(Int32)

Pobiera wartość określonej kolumny jako liczbę zmiennoprzecinkową o podwójnej precyzji.

GetEnumerator()

Zwraca wartość IEnumerator , która iteruje za pośrednictwem elementu SqlDataReader.

GetFieldType(Int32)

Type Pobiera typ danych obiektu .

GetFieldValue<T>(Int32)

Synchronicznie pobiera wartość określonej kolumny jako typ. GetFieldValueAsync<T>(Int32, CancellationToken) to asynchroniczna wersja tej metody.

GetFieldValueAsync<T>(Int32, CancellationToken)

Asynchronicznie pobiera wartość określonej kolumny jako typ. GetFieldValue<T>(Int32) to synchroniczna wersja tej metody.

GetFloat(Int32)

Pobiera wartość określonej kolumny jako liczbę zmiennoprzecinkową o pojedynczej precyzji.

GetGuid(Int32)

Pobiera wartość określonej kolumny jako unikatowy identyfikator globalny (GUID).

GetInt16(Int32)

Pobiera wartość określonej kolumny jako 16-bitową liczbę całkowitą ze znakiem.

GetInt32(Int32)

Pobiera wartość określonej kolumny jako 32-bitową liczbę całkowitą ze znakiem.

GetInt64(Int32)

Pobiera wartość określonej kolumny jako 64-bitową liczbę całkowitą ze znakiem.

GetName(Int32)

Pobiera nazwę określonej kolumny.

GetOrdinal(String)

Pobiera porządkową kolumnę, podając nazwę kolumny.

GetProviderSpecificFieldType(Int32)

Pobiera element Object reprezentujący podstawowy typ pola specyficznego dla dostawcy.

GetProviderSpecificValue(Int32)

Pobiera element Object reprezentujący wartość specyficzną dla bazowego dostawcy.

GetProviderSpecificValues(Object[])

Pobiera tablicę obiektów, które są reprezentacją podstawowych wartości specyficznych dla dostawcy.

GetSchemaTable()

Zwraca obiekt DataTable , który opisuje metadane kolumny elementu SqlDataReader.

GetSqlBinary(Int32)

Pobiera wartość określonej kolumny jako SqlBinary.

GetSqlBoolean(Int32)

Pobiera wartość określonej kolumny jako SqlBoolean.

GetSqlByte(Int32)

Pobiera wartość określonej kolumny jako SqlByte.

GetSqlBytes(Int32)

Pobiera wartość określonej kolumny jako SqlBytes.

GetSqlChars(Int32)

Pobiera wartość określonej kolumny jako SqlChars.

GetSqlDateTime(Int32)

Pobiera wartość określonej kolumny jako SqlDateTime.

GetSqlDecimal(Int32)

Pobiera wartość określonej kolumny jako SqlDecimal.

GetSqlDouble(Int32)

Pobiera wartość określonej kolumny jako SqlDouble.

GetSqlGuid(Int32)

Pobiera wartość określonej kolumny jako SqlGuid.

GetSqlInt16(Int32)

Pobiera wartość określonej kolumny jako SqlInt16.

GetSqlInt32(Int32)

Pobiera wartość określonej kolumny jako SqlInt32.

GetSqlInt64(Int32)

Pobiera wartość określonej kolumny jako SqlInt64.

GetSqlMoney(Int32)

Pobiera wartość określonej kolumny jako SqlMoney.

GetSqlSingle(Int32)

Pobiera wartość określonej kolumny jako SqlSingle.

GetSqlString(Int32)

Pobiera wartość określonej kolumny jako SqlString.

GetSqlValue(Int32)

Zwraca wartość danych w określonej kolumnie jako typ SQL Server.

GetSqlValues(Object[])

Wypełnia tablicę Object zawierającą wartości dla wszystkich kolumn w rekordzie wyrażonych jako typy SQL Server.

GetSqlXml(Int32)

Pobiera wartość określonej kolumny jako wartość XML.

GetStream(Int32)

Pobiera typy danych binarnych, obrazów, varbinary, UDT i wariantów jako Stream.

GetString(Int32)

Pobiera wartość określonej kolumny jako ciąg.

GetTextReader(Int32)

Pobiera typy danych Char, NChar, NText, NVarChar, text, varChar i Variant jako TextReader.

GetTimeSpan(Int32)

Pobiera wartość określonej kolumny jako TimeSpan obiekt.

GetValue(Int32)

Pobiera wartość określonej kolumny w formacie natywnym.

GetValues(Object[])

Wypełnia tablicę obiektów wartościami kolumn bieżącego wiersza.

GetXmlReader(Int32)

Pobiera dane typu XML jako .XmlReader

IsCommandBehavior(CommandBehavior)

Określa, czy określona CommandBehavior wartość jest zgodna z elementem SqlDataReader .

IsDBNull(Int32)

Pobiera wartość wskazującą, czy kolumna zawiera nieistniejące, czy brakujące wartości.

IsDBNullAsync(Int32, CancellationToken)

Asynchroniczna wersja elementu IsDBNull(Int32), która pobiera wartość wskazującą, czy kolumna zawiera nieistniejące, czy brakujące wartości.

Token anulowania może służyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia. Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Task.

NextResult()

Rozwija czytnik danych do następnego wyniku podczas odczytywania wyników instrukcji języka Transact-SQL wsadowego.

NextResultAsync(CancellationToken)

Asynchroniczna wersja programu NextResult(), która rozwija czytnik danych do następnego wyniku podczas odczytywania wyników instrukcji wsadowych języka Transact-SQL.

Token anulowania może służyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia. Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Task.

Read()

SqlDataReader Przechodzi do następnego rekordu.

ReadAsync(CancellationToken)

Asynchroniczna wersja programu Read(), która przechodzi SqlDataReader do następnego rekordu.

Token anulowania może służyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia. Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Task.

Jawne implementacje interfejsu

IDataRecord.GetData(Int32)

Zwraca wartość IDataReader dla określonej kolumny porządkowej.

Dotyczy