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

Przykłady

W poniższym przykładzie jest tworzony element SqlConnection, a SqlCommandi SqlDataReader. Przykład odczytuje dane, zapisuj je w oknie konsoli. Następnie kod zamyka plik SqlDataReader. Element SqlConnection jest zamykany automatycznie na końcu using bloku kodu.

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

Uwagi

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

SqlDataReader Gdy element jest używany, skojarzony SqlConnection jest zajęty obsługą SqlDataReaderelementu , a żadne inne operacje nie mogą być wykonywane na SqlConnection innym niż jego zamykanie. Tak jest do momentu Close wywołania SqlDataReader metody . 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, gdy dane są odczytywane, mogą być widoczne dla użytkownika .SqlDataReader Jednak dokładne zachowanie zależy od chronometrażu.

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

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

Uwaga

Aby uzyskać optymalną wydajność, SqlDataReader 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. Należy zachować 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 zawiera SqlDataReader jeden lub więcej wierszy.

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ę porządkowość kolumny.

Item[String]

Pobiera wartość określonej kolumny w formacie natywnym przy użyciu nazwy kolumny.

RecordsAffected

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

VisibleFieldCount

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

Metody

Close()

SqlDataReader Zamyka obiekt.

Close()

DbDataReader Zamyka obiekt.

(Odziedziczone po DbDataReader)
CloseAsync()

Asynchronicznie zamyka DbDataReader obiekt.

(Odziedziczone po DbDataReader)
CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy DbDataReader.

(Odziedziczone po DbDataReader)
Dispose(Boolean)

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

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element DbDataReader i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po DbDataReader)
DisposeAsync()

Asynchronicznie zwalnia wszystkie zasoby używane przez bieżące wystąpienie DbDataReader klasy.

(Odziedziczone po DbDataReader)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
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 przesunięcia określonej 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 przesunięcia określonej kolumny do buforu jako tablicę rozpoczynającą się od danego przesunięcia buforu.

GetColumnSchema()

Pobiera kolekcję schematów kolumn tylko do odczytu.

GetColumnSchemaAsync(CancellationToken)

Jest to asynchroniczna wersja programu GetColumnSchema(DbDataReader). Dostawcy powinni zastąpić odpowiednią implementacją. Opcjonalnie cancellationToken można je honorować. Domyślna implementacja wywołuje wywołanie synchroniczne GetColumnSchema(DbDataReader) i zwraca ukończone zadanie. Domyślna implementacja zwróci anulowane zadanie, jeśli przekazano już anulowany cancellationTokenelement . Wyjątki zgłoszone przez GetColumnSchema(DbDataReader) program będą przekazywane za pośrednictwem zwróconej właściwości Wyjątki zadania.

(Odziedziczone po DbDataReader)
GetData(Int32)

Zwraca element IDataReader dla określonej kolumny porządkowej.

GetData(Int32)

Zwraca zagnieżdżony czytnik danych dla żądanej kolumny.

(Odziedziczone po DbDataReader)
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.

GetDbDataReader(Int32)

DbDataReader Zwraca obiekt żądanej kolumny porządkowej, który można zastąpić implementacją specyficzną dla dostawcy.

(Odziedziczone po DbDataReader)
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()

IEnumerator Zwraca iterowanie SqlDataReaderprzez element .

GetFieldType(Int32)

Type Pobiera typ danych obiektu.

GetFieldValue<T>(Int32)

Synchronicznie pobiera wartość określonej kolumny jako typ. GetFieldValueAsync<T>(Int32, CancellationToken) jest asynchroniczną wersją tej metody.

GetFieldValue<T>(Int32)

Pobiera wartość określonej kolumny jako żądany typ.

(Odziedziczone po DbDataReader)
GetFieldValueAsync<T>(Int32)

Asynchronicznie pobiera wartość określonej kolumny jako żądany typ.

(Odziedziczone po DbDataReader)
GetFieldValueAsync<T>(Int32, CancellationToken)

Asynchronicznie pobiera wartość określonej kolumny jako typ. GetFieldValue<T>(Int32) jest synchroniczną wersją tej metody.

GetFieldValueAsync<T>(Int32, CancellationToken)

Asynchronicznie pobiera wartość określonej kolumny jako żądany typ.

(Odziedziczone po DbDataReader)
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).

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetInt16(Int32)

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

GetInt32(Int32)

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

GetInt64(Int32)

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

GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetName(Int32)

Pobiera nazwę określonej kolumny.

GetOrdinal(String)

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

GetProviderSpecificFieldType(Int32)

Pobiera reprezentację Object podstawowego typu pola specyficznego dla dostawcy.

GetProviderSpecificValue(Int32)

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

GetProviderSpecificValues(Object[])

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

GetSchemaTable()

Zwraca element DataTable opisujący metadane kolumny elementu SqlDataReader.

GetSchemaTable()

Zwraca element DataTable opisujący metadane kolumny elementu DbDataReader. Zwraca null wartość , jeśli wykonane polecenie nie zwróciło zestawu wyników lub po NextResult() zwracaniu wartości false.

(Odziedziczone po DbDataReader)
GetSchemaTableAsync(CancellationToken)

Jest to asynchroniczna wersja programu GetSchemaTable(). Dostawcy powinni zastąpić odpowiednią implementacją. Opcjonalnie cancellationToken można je honorować. Domyślna implementacja wywołuje wywołanie synchroniczne GetSchemaTable() i zwraca ukończone zadanie. Domyślna implementacja zwróci anulowane zadanie, jeśli przekazano już anulowany cancellationTokenelement . Wyjątki zgłoszone przez GetSchemaTable() program będą przekazywane za pośrednictwem zwróconej właściwości Wyjątki zadania.

(Odziedziczone po DbDataReader)
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.

GetStream(Int32)

Pobiera strumień do pobierania danych z określonej kolumny.

(Odziedziczone po DbDataReader)
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.

GetTextReader(Int32)

Pobiera czytnik tekstu w celu pobrania danych z kolumny.

(Odziedziczone po DbDataReader)
GetTimeSpan(Int32)

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

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
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.

InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

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

IsDBNull(Int32)

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

IsDBNullAsync(Int32)

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

(Odziedziczone po DbDataReader)
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 Zadania.

IsDBNullAsync(Int32, CancellationToken)

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

(Odziedziczone po DbDataReader)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
NextResult()

Umożliwia przejście czytnika danych do następnego wyniku podczas odczytywania wyników instrukcji transact-SQL wsadowych.

NextResultAsync()

Asynchronicznie przechodzi czytelnika do następnego wyniku podczas odczytywania wyników partii instrukcji.

(Odziedziczone po DbDataReader)
NextResultAsync(CancellationToken)

Asynchroniczna wersja elementu NextResult(), która powoduje przejście czytnika danych do następnego wyniku podczas odczytywania wyników instrukcji transact-SQL wsadowych.

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

NextResultAsync(CancellationToken)

Asynchronicznie przechodzi czytelnika do następnego wyniku podczas odczytywania wyników partii instrukcji.

(Odziedziczone po DbDataReader)
Read()

SqlDataReader Przechodzi do następnego rekordu.

ReadAsync()

Asynchronicznie zwiększa czytelnika do następnego rekordu w zestawie wyników.

(Odziedziczone po DbDataReader)
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 Zadania.

ReadAsync(CancellationToken)

Asynchronicznie zwiększa czytelnika do następnego rekordu w zestawie wyników.

(Odziedziczone po DbDataReader)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IDataReader.Close()

Aby uzyskać opis tego elementu członkowskiego, zobacz Close().

(Odziedziczone po DbDataReader)
IDataReader.GetSchemaTable()

Aby uzyskać opis tego elementu członkowskiego, zobacz GetSchemaTable().

(Odziedziczone po DbDataReader)
IDataRecord.GetData(Int32)

Zwraca element IDataReader dla określonej kolumny porządkowej.

IDataRecord.GetData(Int32)

Aby uzyskać opis tego elementu członkowskiego, zobacz GetData(Int32).

(Odziedziczone po DbDataReader)
IDisposable.Dispose()

Zwalnia wszystkie zasoby używane przez czytnik danych.

IEnumerable.GetEnumerator()

Zwraca moduł wyliczający, którego można użyć do iterowania w kolekcji elementów.

Metody rozszerzania

CanGetColumnSchema(DbDataReader)

Pobiera wartość wskazującą, czy DbDataReader można uzyskać schemat kolumny.

GetColumnSchema(DbDataReader)

Pobiera schemat kolumny (DbColumn kolekcja) dla elementu DbDataReader.

Cast<TResult>(IEnumerable)

Rzutuje elementy elementu IEnumerable do określonego typu.

OfType<TResult>(IEnumerable)

Filtruje elementy elementu IEnumerable na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy

Zobacz też