SqlCommand.ExecuteReader Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Invia all'oggetto CommandTextConnection e compila un oggetto SqlDataReader.
Overload
| Nome | Descrizione |
|---|---|
| ExecuteReader() |
Invia all'oggetto CommandTextConnection e compila un oggetto SqlDataReader. |
| ExecuteReader(CommandBehavior) |
Invia all'oggetto CommandTextConnectione compila un SqlDataReader oggetto utilizzando uno dei CommandBehavior valori . |
ExecuteReader()
Invia all'oggetto CommandTextConnection e compila un oggetto 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
Restituisce
Un oggetto SqlDataReader.
Eccezioni
È stato usato un SqlDbType oggetto diverso da Binary o VarBinary quando Value è stato impostato su Stream. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
oppure
È stato usato un SqlDbType valore diverso da Char, NChar, NVarChar, VarChar o Xml quando Value è stato impostato su TextReader.
oppure
È stato utilizzato un SqlDbType oggetto diverso da Xml quando Value è stato impostato su XmlReader.
Eccezione durante l'esecuzione del comando su una riga bloccata. Questa eccezione non viene generata quando si usa Microsoft .NET Framework versione 1.0.
oppure
Si è verificato un timeout durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
Lo stato corrente della connessione viene chiuso. ExecuteReader() richiede un oggetto aperto SqlConnection.
oppure
Oggetto SqlConnection chiuso o eliminato durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
Si è verificato un errore in un StreamXmlReader oggetto o TextReader durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
L'oggetto Streamo XmlReaderTextReader è stato chiuso durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
Esempio
Nell'esempio seguente viene creato un SqlCommandoggetto , che viene quindi eseguito passando una stringa che è un'istruzione SELECT Transact-SQL e una stringa da usare per connettersi all'origine dati.
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
Commenti
Quando la CommandType proprietà è impostata su StoredProcedure, la CommandText proprietà deve essere impostata sul nome della stored procedure. Il comando esegue questa stored procedure quando si chiama ExecuteReader.
Annotazioni
Se una transazione è deadlock, è possibile che non venga generata un'eccezione fino a quando Read non viene chiamato .
La funzionalità mars (Multiple Active Result Set) consente più azioni usando la stessa connessione.
Se si usa ExecuteReader o BeginExecuteReader per accedere ai dati XML, SQL Server restituirà tutti i risultati XML maggiori di 2.033 caratteri con lunghezza in più righe di 2.033 caratteri ciascuno. Per evitare questo comportamento, utilizzare ExecuteXmlReader o BeginExecuteXmlReader per leggere query FOR XML.
Vedi anche
Si applica a
ExecuteReader(CommandBehavior)
Invia all'oggetto CommandTextConnectione compila un SqlDataReader oggetto utilizzando uno dei CommandBehavior valori .
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
Parametri
- behavior
- CommandBehavior
Uno dei CommandBehavior valori.
Restituisce
Un oggetto SqlDataReader.
Eccezioni
È stato usato un SqlDbType oggetto diverso da Binary o VarBinary quando Value è stato impostato su Stream. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
oppure
È stato usato un SqlDbType valore diverso da Char, NChar, NVarChar, VarChar o Xml quando Value è stato impostato su TextReader.
oppure
È stato utilizzato un SqlDbType oggetto diverso da Xml quando Value è stato impostato su XmlReader.
Si è verificato un timeout durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
Si è verificato un errore in un StreamXmlReader oggetto o TextReader durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
Oggetto SqlConnection chiuso o eliminato durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
L'oggetto Streamo XmlReaderTextReader è stato chiuso durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
Esempio
Nell'esempio seguente viene creato un SqlCommandoggetto , che viene quindi eseguito passando una stringa che è un'istruzione SELECT Transact-SQL e una stringa da usare per connettersi all'origine dati. CommandBehavior è impostato su 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
Commenti
Quando la CommandType proprietà è impostata su StoredProcedure, la CommandText proprietà deve essere impostata sul nome della stored procedure. Il comando esegue questa stored procedure quando si chiama ExecuteReader.
Annotazioni
Usare SequentialAccess per recuperare valori di grandi dimensioni e dati binari. In caso contrario, potrebbe verificarsi un OutOfMemoryException e la connessione verrà chiusa.
La funzionalità mars (Multiple Active Result Set) consente più azioni usando la stessa connessione.
Se si usa ExecuteReader o BeginExecuteReader per accedere ai dati XML, SQL Server restituirà tutti i risultati XML maggiori di 2.033 caratteri con lunghezza in più righe di 2.033 caratteri ciascuno. Per evitare questo comportamento, utilizzare ExecuteXmlReader o BeginExecuteXmlReader per leggere query FOR XML.
Vedi anche
- Connessione e recupero di dati in ADO.NET
- Uso del provider di dati .NET Framework per SQL Server
- Panoramica di ADO.NET