SqlCommand.ExecuteReader Метод

Определение

Перегрузки

Имя Описание
ExecuteReader()

Отправляет объект CommandTextConnection в и создает объект SqlDataReader.

ExecuteReader(CommandBehavior)

Отправляет объект в CommandText приложение и создает Connection одно из значений SqlDataReaderCommandBehavior.

ExecuteReader()

Исходный код:
SqlCommand.cs
Исходный код:
SqlCommand.cs
Исходный код:
SqlCommand.cs
Исходный код:
SqlCommand.cs

Отправляет объект CommandTextConnection в и создает объект SqlDataReader.

public:
 Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader();
override this.ExecuteReader : unit -> Microsoft.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader

Возвращаемое значение

Объект SqlDataReader.

Исключения

  • При выполнении команды в заблокированной строке произошло исключение. Это исключение не создается при использовании Microsoft .NET Framework версии 1.0.
  • Время ожидания произошло во время операции потоковой передачи. Дополнительные сведения о потоковой передаче см. в разделе "Поддержка потоковой передачи SqlClient".

Ошибка произошла в объекте StreamXmlReader или TextReader объекте во время операции потоковой передачи. Дополнительные сведения о потоковой передаче см. в разделе "Поддержка потоковой передачи SqlClient".

Stream Объект XmlReaderили TextReader объект был закрыт во время операции потоковой передачи. Дополнительные сведения о потоковой передаче см. в разделе "Поддержка потоковой передачи SqlClient".

Примеры

В следующем примере создается объект SqlCommand, а затем выполняется путем передачи строки, которая является оператором Transact-SQL SELECT, и строкой для подключения к источнику данных.

using System;
using System.Data;
using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
        CreateCommand(qs, str);
    }

    private static void CreateCommand(string queryString,
        string connectionString)
    {
        using (SqlConnection connection = new SqlConnection(
                   connectionString))
        {
            connection.Open();

            SqlCommand command = new SqlCommand(queryString, connection);
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}", reader[0]));
            }
        }
    }

Комментарии

CommandType Если для свойства задано StoredProcedureзначение, CommandText свойство должно иметь имя хранимой процедуры. Команда выполняет эту хранимую процедуру при вызове ExecuteReader.

Замечание

Если транзакция заблокирована, исключение может не вызываться.Read

Функция нескольких активных результирующих наборов (MARS) позволяет выполнять несколько действий с использованием одного подключения.

Если вы используете ExecuteReader или BeginExecuteReader используете XML-данные, SQL Server вернет все результаты XML, превышающие 2033 символов длиной в нескольких строках из 2033 символов. Чтобы избежать этого поведения, используйте ExecuteXmlReader или BeginExecuteXmlReader считывает запросы FOR XML.

Применяется к

ExecuteReader(CommandBehavior)

Исходный код:
SqlCommand.cs
Исходный код:
SqlCommand.cs
Исходный код:
SqlCommand.cs
Исходный код:
SqlCommand.cs

Отправляет объект в CommandText приложение и создает Connection одно из значений SqlDataReaderCommandBehavior.

public:
 Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader(System::Data::CommandBehavior behavior);
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior);
override this.ExecuteReader : System.Data.CommandBehavior -> Microsoft.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader

Параметры

behavior
CommandBehavior

Одно из значений CommandBehavior .

Возвращаемое значение

Объект SqlDataReader.

Исключения

Время ожидания произошло во время операции потоковой передачи. Дополнительные сведения о потоковой передаче см. в разделе "Поддержка потоковой передачи SqlClient".

Ошибка произошла в объекте StreamXmlReader или TextReader объекте во время операции потоковой передачи. Дополнительные сведения о потоковой передаче см. в разделе "Поддержка потоковой передачи SqlClient".

Закрытый SqlConnection или удаленный во время операции потоковой передачи. Дополнительные сведения о потоковой передаче см. в разделе "Поддержка потоковой передачи SqlClient".

Stream Объект XmlReaderили TextReader объект был закрыт во время операции потоковой передачи. Дополнительные сведения о потоковой передаче см. в разделе "Поддержка потоковой передачи SqlClient".

Примеры

В следующем примере создается объект SqlCommand, а затем выполняется путем передачи строки, которая является оператором Transact-SQL SELECT, и строкой для подключения к источнику данных. CommandBehavior задан как CloseConnection.

using System;
using System.Data;
using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
        CreateCommand(qs, str);
    }

    private static void CreateCommand(string queryString,
        string connectionString)
    {
        using (SqlConnection connection = new SqlConnection(
                   connectionString))
        {
            SqlCommand command = new SqlCommand(queryString, connection);
            connection.Open();
            SqlDataReader reader =
                command.ExecuteReader(CommandBehavior.CloseConnection);
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}", reader[0]));
            }
        }
    }
}

Комментарии

CommandType Если для свойства задано StoredProcedureзначение, CommandText свойство должно иметь имя хранимой процедуры. Команда выполняет эту хранимую процедуру при вызове ExecuteReader.

Замечание

Используется SequentialAccess для получения больших значений и двоичных данных. В противном случае может произойти ошибка OutOfMemoryException, и соединение будет закрыто.

Функция нескольких активных результирующих наборов (MARS) позволяет выполнять несколько действий с использованием одного подключения.

Если вы используете ExecuteReader или BeginExecuteReader используете XML-данные, SQL Server вернет все результаты XML, превышающие 2033 символов длиной в нескольких строках из 2033 символов. Чтобы избежать этого поведения, используйте ExecuteXmlReader или BeginExecuteXmlReader считывает запросы FOR XML.

Применяется к