SqlCommand.ExecuteReader SqlCommand.ExecuteReader SqlCommand.ExecuteReader SqlCommand.ExecuteReader Method

Определение

Отправляет CommandText в Connection и строит SqlDataReader.Sends the CommandText to the Connection and builds a SqlDataReader.

Перегрузки

ExecuteReader() ExecuteReader() ExecuteReader() ExecuteReader()

Отправляет CommandText в Connection и строит SqlDataReader.Sends the CommandText to the Connection and builds a SqlDataReader.

ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior)

Отправляет CommandText в Connection и формирует SqlDataReader с помощью одного из значений CommandBehavior.Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

ExecuteReader() ExecuteReader() ExecuteReader() ExecuteReader()

Отправляет CommandText в Connection и строит SqlDataReader.Sends the CommandText to the Connection and builds a SqlDataReader.

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

Возвраты

Исключения

При присвоении Value значения Stream использовался тип SqlDbType, отличный от Binary или VarBinary.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

-или--or-

При присвоении Value значения TextReader использовался тип SqlDbType, отличный от Char, NChar, NVarChar, VarChar или Xml.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

- или --or-

При присвоении Value значения XmlReader использовался тип SqlDbType, отличный от Xml.A SqlDbType other than Xml was used when Value was set to XmlReader.

Возникло исключение при выполнении команды в заблокированной строке.An exception occurred while executing the command against a locked row. Это исключение не создается при использовании платформы Microsoft .NET Framework версии 1.0.This exception is not generated when you are using Microsoft .NET Framework version 1.0.

-или--or-

Во время операции потоковой передачи истекло время ожидания.A timeout occurred during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Подключение закрыто.The current state of the connection is closed. Для ExecuteReader() требуется открытое подключение SqlConnection.ExecuteReader() requires an open SqlConnection.

- или --or-

Подключение SqlConnection, закрытое или удаленное во время операции потоковой передачи.The SqlConnection closed or dropped during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Во время операции потоковой передачи возникла ошибка в объекте Stream, XmlReader или TextReader.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Объект Stream, XmlReader или TextReader был закрыт во время операции потоковой передачи.The Stream, XmlReader or TextReader object was closed during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Примеры

В следующем примере создается SqlCommand, а затем выполняет его, передав строку, которая является инструкцией Transact-SQL SELECT и строка, используемая для подключения к источнику данных.The following example creates a SqlCommand, and then executes it by passing a string that is a Transact-SQL SELECT statement, and a string to use to connect to the data source.

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]));
        }
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        connection.Open()

        Dim command As New SqlCommand(queryString, connection)
        Dim reader As SqlDataReader = command.ExecuteReader()
        While reader.Read()
            Console.WriteLine("{0}", reader(0))
        End While
    End Using
End Sub

Комментарии

Когда CommandType свойству StoredProcedure, CommandText свойство должно быть присвоено имя хранимой процедуры.When the CommandType property is set to StoredProcedure, the CommandText property should be set to the name of the stored procedure. Команда выполняет эту хранимую процедуру при вызове ExecuteReader.The command executes this stored procedure when you call ExecuteReader.

Примечание

Если блокировка транзакции, исключение не может быть создано до Read вызывается.If a transaction is deadlocked, an exception may not be thrown until Read is called.

Несколько активный результирующий набор (MARS) позволяет множества действий, в том же соединении.The multiple active result set (MARS) feature allows for multiple actions using the same connection.

Если вы используете ExecuteReader или BeginExecuteReader для доступа к данным XML, SQL Server возвратит никаких результатов XML 2,033 символов длиной в нескольких строках 2,033 символов.If you use ExecuteReader or BeginExecuteReader to access XML data, SQL Server will return any XML results greater than 2,033 characters in length in multiple rows of 2,033 characters each. Чтобы избежать этого, используйте ExecuteXmlReader или BeginExecuteXmlReader для чтения запросов FOR XML.To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

Дополнительно

ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior)

Отправляет CommandText в Connection и формирует SqlDataReader с помощью одного из значений CommandBehavior.Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

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

Параметры

behavior
CommandBehavior CommandBehavior CommandBehavior CommandBehavior

Одно из значений CommandBehavior.One of the CommandBehavior values.

Возвраты

Исключения

При присвоении Value значения Stream использовался тип SqlDbType, отличный от Binary или VarBinary.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

- или --or-

При присвоении Value значения TextReader использовался тип SqlDbType, отличный от Char, NChar, NVarChar, VarChar или Xml.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

- или --or-

При присвоении Value значения XmlReader использовался тип SqlDbType, отличный от Xml.A SqlDbType other than Xml was used when Value was set to XmlReader.

Во время операции потоковой передачи истекло время ожидания.A timeout occurred during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Во время операции потоковой передачи возникла ошибка в объекте Stream, XmlReader или TextReader.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Подключение SqlConnection, закрытое или удаленное во время операции потоковой передачи.The SqlConnection closed or dropped during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Объект Stream, XmlReader или TextReader был закрыт во время операции потоковой передачи.The Stream, XmlReader or TextReader object was closed during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Примеры

В следующем примере создается SqlCommand, а затем выполняет его, передав строку, которая является инструкцией Transact-SQL SELECT и строка, используемая для подключения к источнику данных.The following example creates a SqlCommand, and then executes it by passing a string that is a Transact-SQL SELECT statement, and a string to use to connect to the data source. Параметру CommandBehavior задается значение CloseConnection.CommandBehavior is set to CloseConnection.

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]));
        }
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()
        Dim reader As SqlDataReader = _
            command.ExecuteReader(CommandBehavior.CloseConnection)
        While reader.Read()
            Console.WriteLine("{0}", reader(0))
        End While
    End Using
End Sub

Комментарии

Когда CommandType свойству StoredProcedure, CommandText свойство должно быть присвоено имя хранимой процедуры.When the CommandType property is set to StoredProcedure, the CommandText property should be set to the name of the stored procedure. Команда выполняет эту хранимую процедуру при вызове ExecuteReader.The command executes this stored procedure when you call ExecuteReader.

Примечание

Используйте SequentialAccess для получения больших значений и двоичные данные.Use SequentialAccess to retrieve large values and binary data. В противном случае OutOfMemoryException могут возникнуть, и соединение будет закрыто.Otherwise, an OutOfMemoryException might occur and the connection will be closed.

Несколько активный результирующий набор (MARS) позволяет множества действий, в том же соединении.The multiple active result set (MARS) feature allows for multiple actions using the same connection.

Если вы используете ExecuteReader или BeginExecuteReader для доступа к данным XML, SQL Server возвратит никаких результатов XML 2,033 символов длиной в нескольких строках 2,033 символов.If you use ExecuteReader or BeginExecuteReader to access XML data, SQL Server will return any XML results greater than 2,033 characters in length in multiple rows of 2,033 characters each. Чтобы избежать этого, используйте ExecuteXmlReader или BeginExecuteXmlReader для чтения запросов FOR XML.To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

Дополнительно

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