SqlCommand.ExecuteReader Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Envia o CommandText para o Connection e cria um SqlDataReader.
Sobrecargas
| Nome | Description |
|---|---|
| ExecuteReader() |
Envia o CommandText para o Connection e cria um SqlDataReader. |
| ExecuteReader(CommandBehavior) |
Envia o CommandText para o Connectione cria um usando um SqlDataReader dos CommandBehavior valores. |
ExecuteReader()
Envia o CommandText para o Connection e cria um SqlDataReader.
public:
System::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public System.Data.SqlClient.SqlDataReader ExecuteReader();
override this.ExecuteReader : unit -> System.Data.SqlClient.SqlDataReader
member this.ExecuteReader : unit -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader
Retornos
Um SqlDataReader objeto.
Exceções
Um SqlDbType diferente de Binary ou VarBinary foi usado quando Value foi definido como Stream. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
- ou -
Um SqlDbType diferente de Char, NChar, NVarChar, VarChar ou Xml foi usado quando Value foi definido como TextReader.
- ou -
Um SqlDbType diferente de Xml foi usado quando Value foi definido como XmlReader.
Ocorreu uma exceção ao executar o comando em uma linha bloqueada. Essa exceção não é gerada quando você está usando o Microsoft .NET Framework versão 1.0.
- ou -
Ocorreu um tempo limite durante uma operação de streaming. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
O estado atual da conexão é fechado. ExecuteReader() requer uma abertura SqlConnection.
- ou -
O SqlConnection fechado ou descartado durante uma operação de streaming. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
Ocorreu um erro em um Streamobjeto ou TextReader um XmlReader objeto durante uma operação de streaming. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
O Streamobjeto ou TextReader o objeto XmlReader foi fechado durante uma operação de streaming. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
Exemplos
O exemplo a seguir cria um SqlCommande, em seguida, executa-o passando uma cadeia de caracteres que é uma instrução SELECT Transact-SQL e uma cadeia de caracteres a ser usada para se conectar à fonte de dados.
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(queryString, connection);
using(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()
Try
While reader.Read()
Console.WriteLine("{0}", reader(0))
End While
Finally
' Always call Close when done reading.
reader.Close()
End Try
End Using
End Sub
Comentários
Quando a CommandType propriedade é definida como StoredProcedure, a CommandText propriedade deve ser definida como o nome do procedimento armazenado. O comando executa este procedimento armazenado quando você chama ExecuteReader.
Observação
Se uma transação estiver em deadlock, uma exceção poderá não ser lançada até Read ser chamada.
O recurso MARS (conjunto de resultados ativo múltiplo) permite várias ações usando a mesma conexão.
Se você usar ExecuteReader ou BeginExecuteReader acessar dados XML, o SQL Server retornará resultados XML maiores que 2.033 caracteres de comprimento em várias linhas de 2.033 caracteres cada. Para evitar esse comportamento, use ExecuteXmlReader ou BeginExecuteXmlReader leia consultas FOR XML.
Confira também
Aplica-se a
ExecuteReader(CommandBehavior)
Envia o CommandText para o Connectione cria um usando um SqlDataReader dos CommandBehavior valores.
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
member this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader
Parâmetros
- behavior
- CommandBehavior
Um dos CommandBehavior valores.
Retornos
Um SqlDataReader objeto.
Exceções
Um SqlDbType diferente de Binary ou VarBinary foi usado quando Value foi definido como Stream. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
- ou -
Um SqlDbType diferente de Char, NChar, NVarChar, VarChar ou Xml foi usado quando Value foi definido como TextReader.
- ou -
Um SqlDbType diferente de Xml foi usado quando Value foi definido como XmlReader.
Ocorreu um tempo limite durante uma operação de streaming. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
Ocorreu um erro em um Streamobjeto ou TextReader um XmlReader objeto durante uma operação de streaming. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
O SqlConnection fechado ou descartado durante uma operação de streaming. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
O Streamobjeto ou TextReader o objeto XmlReader foi fechado durante uma operação de streaming. Para obter mais informações sobre streaming, consulte o Suporte de Streaming do SqlClient.
Exemplos
O exemplo a seguir cria um SqlCommande, em seguida, executa-o passando uma cadeia de caracteres que é uma instrução SELECT Transact-SQL e uma cadeia de caracteres a ser usada para se conectar à fonte de dados. CommandBehavior é definido como CloseConnection.
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
using(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)
Try
While reader.Read()
Console.WriteLine("{0}", reader(0))
End While
Finally
' Always call Close when done reading.
reader.Close()
End Try
End Using
End Sub
Comentários
Quando a CommandType propriedade é definida como StoredProcedure, a CommandText propriedade deve ser definida como o nome do procedimento armazenado. O comando executa este procedimento armazenado quando você chama ExecuteReader.
Observação
Use SequentialAccess para recuperar valores grandes e dados binários. Caso contrário, poderá ocorrer um OutOfMemoryException e a conexão será fechada.
O recurso MARS (conjunto de resultados ativo múltiplo) permite várias ações usando a mesma conexão.
Se você usar ExecuteReader ou BeginExecuteReader acessar dados XML, o SQL Server retornará resultados XML maiores que 2.033 caracteres de comprimento em várias linhas de 2.033 caracteres cada. Para evitar esse comportamento, use ExecuteXmlReader ou BeginExecuteXmlReader leia consultas FOR XML.
Confira também
- Conectando e recuperando dados no ADO.NET
- Usando o provedor de dados do .NET Framework para SQL Server
- Visão geral do ADO.NET