SqlDataReader Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет способ чтения потока строк последовательного доступа из базы данных SQL Server. Этот класс не наследуется.
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
- Наследование
-
SqlDataReader
- Реализации
Примеры
В следующем примере создаются SqlConnection, SqlCommandи SqlDataReader. В этом примере данные считываются и записываются в окно консоли. Затем код закрывает SqlDataReader. автоматически SqlConnection закрывается в конце using
блока кода.
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]));
}
}
Комментарии
Чтобы создать SqlDataReader, необходимо вызвать ExecuteReader метод SqlCommand объекта , а не напрямую использовать конструктор.
SqlDataReader Пока используется , связанный SqlConnection объект занят обслуживанием SqlDataReader, и никакие другие операции не могут быть выполнены для SqlConnection , кроме закрытия. Это происходит до тех пор, Close пока не будет вызван метод SqlDataReader объекта . Например, вы не сможете получить выходные параметры до тех пор, пока не вызовете Close.
Изменения, внесенные в результирующий набор другим процессом или потоком во время чтения данных, могут быть видны пользователю SqlDataReader
. Однако точное поведение зависит от времени.
IsClosed и RecordsAffected являются единственными свойствами, которые могут быть вызваны после закрытия SqlDataReader. Хотя доступ к свойству RecordsAffected можно получить, пока SqlDataReader существует , всегда вызывайте Close перед возвратом значения RecordsAffected , чтобы гарантировать точное возвращаемое значение.
При использовании последовательного доступа (CommandBehavior.SequentialAccess) InvalidOperationException будет вызываться , если SqlDataReader позиция расширена, а в предыдущем столбце предпринята попытка выполнить другую операцию чтения.
Примечание
Для обеспечения оптимальной производительности SqlDataReader позволяет избежать создания ненужных объектов или создания ненужных копий данных. Таким образом, несколько вызовов методов, таких как GetValue , возвращают ссылку на один и тот же объект. Будьте осторожны при изменении базового значения объектов, возвращаемых такими методами, как GetValue.
Свойства
Connection |
Возвращает ключ SqlConnection, ассоциированный с экземпляром SqlDataReader. |
Depth |
Возвращает значение, указывающее глубину вложенности для текущей строки. |
FieldCount |
Возвращает число столбцов в текущей строке. |
HasRows |
Получает значение, указывающее, содержит ли объект SqlDataReader одну или несколько строк. |
IsClosed |
Извлекает логическое значение, указывающее, закрыт ли заданный экземпляр SqlDataReader. |
Item[Int32] |
Возвращает значение указанного столбца в собственном формате при наличии заданного порядкового номера столбца. |
Item[String] |
Возвращает значение заданного столбца в собственном формате при наличии заданного имени столбца. |
RecordsAffected |
Возвращает число измененных, вставленных или удаленных строк при выполнении SQL-транзакций. |
SensitivityClassification |
Возвращает сведения с SensitivityClassification помощью SqlDataReader. |
VisibleFieldCount |
Возвращает число не скрытых полей в SqlDataReader. |
Методы
Close() |
Закрывает объект SqlDataReader. |
Dispose(Boolean) |
Предоставляет способ чтения потока строк последовательного доступа из базы данных SQL Server. Этот класс не наследуется. |
GetBoolean(Int32) |
Возвращает значение указанного столбца в виде логического значения. |
GetByte(Int32) |
Возвращает значение указанного столбца в виде байта. |
GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Считывает поток байтов от указанного смещения столбца в буфер в виде массива, начиная с заданного смещения буфера. |
GetChar(Int32) |
Возвращает значение указанного столбца в виде одного символа. |
GetChars(Int32, Int64, Char[], Int32, Int32) |
Считывает поток символов от указанного смещения столбца в буфер в виде массива, начиная с заданного смещения буфера. |
GetColumnSchema() |
Получает коллекцию схемы столбца только для чтения. |
GetDataTypeName(Int32) |
Получает строку, представляющую тип данных в указанном столбце. |
GetDateTime(Int32) |
Возвращает значение указанного столбца в виде объекта DateTime. |
GetDateTimeOffset(Int32) |
Возвращает значение указанного столбца как объект DateTimeOffset. |
GetDecimal(Int32) |
Возвращает значение указанного столбца в виде объекта Decimal. |
GetDouble(Int32) |
Возвращает значение указанного столбца в виде числа с плавающей запятой двойной точности. |
GetEnumerator() |
Возвращает объект IEnumerator, осуществляющий перебор SqlDataReader. |
GetFieldType(Int32) |
Возвращает тип Type, который является типом данных объекта. |
GetFieldValue<T>(Int32) |
Синхронно получает значение заданного столбца в виде типа. GetFieldValueAsync<T>(Int32, CancellationToken) — асинхронная версия этого метода. |
GetFieldValueAsync<T>(Int32, CancellationToken) |
Асинхронно получает значение заданного столбца в виде типа. GetFieldValue<T>(Int32) — синхронная версия этого метода. |
GetFloat(Int32) |
Возвращает значение заданного столбца в виде числа с плавающей запятой одинарной точности. |
GetGuid(Int32) |
Возвращает значение указанного столбца в виде глобально уникального идентификатора (GUID). |
GetInt16(Int32) |
Получает значение заданного столбца в виде 16-битового целого числа со знаком. |
GetInt32(Int32) |
Возвращает значение указанного столбца в виде 32-разрядного целого числа со знаком. |
GetInt64(Int32) |
Возвращает значение указанного столбца в виде 64-разрядного целого числа со знаком. |
GetName(Int32) |
Возвращает имя заданного столбца. |
GetOrdinal(String) |
Возвращает порядковый номер столбца при наличии заданного имени столбца. |
GetProviderSpecificFieldType(Int32) |
Возвращает |
GetProviderSpecificValue(Int32) |
Возвращает |
GetProviderSpecificValues(Object[]) |
Возвращает массив объектов, которые представляют собой значения типа, специфического для базового поставщика. |
GetSchemaTable() |
Возвращает объект DataTable, описывающий метаданные столбцов модуля чтения данных SqlDataReader. |
GetSqlBinary(Int32) |
Возвращает значение заданного столбца в виде объекта SqlBinary. |
GetSqlBoolean(Int32) |
Возвращает значение заданного столбца в виде объекта SqlBoolean. |
GetSqlByte(Int32) |
Возвращает значение заданного столбца в виде объекта SqlByte. |
GetSqlBytes(Int32) |
Возвращает значение заданного столбца в виде объекта SqlBytes. |
GetSqlChars(Int32) |
Возвращает значение заданного столбца в виде объекта SqlChars. |
GetSqlDateTime(Int32) |
Возвращает значение заданного столбца в виде объекта SqlDateTime. |
GetSqlDecimal(Int32) |
Возвращает значение заданного столбца в виде объекта SqlDecimal. |
GetSqlDouble(Int32) |
Возвращает значение заданного столбца в виде объекта SqlDouble. |
GetSqlGuid(Int32) |
Возвращает значение заданного столбца в виде объекта SqlGuid. |
GetSqlInt16(Int32) |
Возвращает значение заданного столбца в виде объекта SqlInt16. |
GetSqlInt32(Int32) |
Возвращает значение заданного столбца в виде объекта SqlInt32. |
GetSqlInt64(Int32) |
Возвращает значение заданного столбца в виде объекта SqlInt64. |
GetSqlMoney(Int32) |
Возвращает значение заданного столбца в виде объекта SqlMoney. |
GetSqlSingle(Int32) |
Возвращает значение заданного столбца в виде объекта SqlSingle. |
GetSqlString(Int32) |
Возвращает значение заданного столбца в виде объекта SqlString. |
GetSqlValue(Int32) |
Возвращает значение данных в заданном столбце как тип SQL Server. |
GetSqlValues(Object[]) |
Заполняет массив значений типа Object, содержащий значения для всех столбцов в записи, выраженные как типы SQL Server. |
GetSqlXml(Int32) |
Возвращает значение заданного столбца в виде XML. |
GetStream(Int32) |
Извлекает типы данных binary, image, varbinary, UDT и variant как Stream. |
GetString(Int32) |
Возвращает значение заданного столбца в виде строки. |
GetTextReader(Int32) |
Извлекает типы данных Char, NChar, NText, NVarChar, text, varChar и Variant как TextReader. |
GetTimeSpan(Int32) |
Возвращает значение указанного столбца как объект TimeSpan. |
GetValue(Int32) |
Возвращает значение заданного столбца в его исходном формате. |
GetValues(Object[]) |
Заполняет массив объектов значениями столбцов текущей строки. |
GetXmlReader(Int32) |
Извлекает данные типа XML как XmlReader. |
IsCommandBehavior(CommandBehavior) |
Определяет, соответствует ли заданный CommandBehavior аналогичному объекту для SqlDataReader . |
IsDBNull(Int32) |
Получает значение, указывающее, содержит ли столбец несуществующие или пропущенные значения. |
IsDBNullAsync(Int32, CancellationToken) |
Асинхронная версия метода IsDBNull(Int32), который получает значение, указывающее, содержит ли столбец несуществующие или отсутствующие значения. Токен отмены можно использовать для запроса отказа от операции до истечения времени ожидания команды. Сведения об исключениях передаются в возвращенном объекте Task. |
NextResult() |
При чтении результатов пакетных SQL-транзакций перемещает средство чтения данных на следующий результат. |
NextResultAsync(CancellationToken) |
Асинхронная версия NextResult(), которая перемещает средство чтения данных к следующему результату при чтении результатов пакетных инструкций Transact-SQL. Токен отмены можно использовать для запроса отказа от операции до истечения времени ожидания команды. Сведения об исключениях передаются в возвращенном объекте Task. |
Read() |
Перемещает SqlDataReader к следующей записи. |
ReadAsync(CancellationToken) |
Асинхронная версия Read(), которая перемещает SqlDataReader к следующей записи. Токен отмены можно использовать для запроса отказа от операции до истечения времени ожидания команды. Сведения об исключениях передаются в возвращенном объекте Task. |
Явные реализации интерфейса
IDataRecord.GetData(Int32) |
Возвращает IDataReader для указанного порядкового номера столбца. |