SqlDataReader Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 |
GetProviderSpecificValue(Int32) |
Pobiera element |
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. |