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 CommandText a Connection e compila SqlDataReader.
Overload
| ExecuteReader() |
Invia CommandText a Connection e compila SqlDataReader. |
| ExecuteReader(CommandBehavior) |
Invia CommandText a Connection e compila SqlDataReader mediante uno dei valori di CommandBehavior. |
ExecuteReader()
Invia CommandText a Connection e compila 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 valore SqlDbType diverso da Binary o VarBinary quando Value era impostato su Stream. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
-oppure-
Un SqlDbType oggetto diverso da Char, NChar, NVarChar, VarChar o Xml è stato usato quando Value è stato impostato su . TextReader
-oppure-
È stato usato un valore SqlDbType diverso da Xml quando Value era impostato su XmlReader.
È stata generata un'eccezione durante l'esecuzione del comando su una riga bloccata. Tale eccezione non viene generata quando si usa Microsoft .NET Framework Versione 1.0.
-oppure-
Si è verificato un timeout durante un'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
Lo stato corrente della connessione è chiuso. Con ExecuteReader() è richiesto un oggetto SqlConnection aperto.
-oppure-
L'elemento SqlConnection chiuso o eliminato durante l'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
Errore nell'oggetto Stream, XmlReader o TextReader durante un'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
L'oggetto Stream, XmlReader o TextReader è stato chiuso durante l'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
Esempio
Nell'esempio seguente viene creato un SqlCommandoggetto e quindi viene eseguito passando una stringa che è un'istruzione Transact-SQL SELECT 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.
Nota
Se una transazione è deadlock, potrebbe non essere generata un'eccezione finché Read non viene chiamata.
La funzionalità mars (Active Result Set) multipla consente più azioni usando la stessa connessione.
Se si usa ExecuteReader o BeginExecuteReader si accede ai dati XML, SQL Server restituirà i risultati XML superiori a 2.033 caratteri in lunghezza in più righe di 2.033 caratteri ciascuno. Per evitare questo comportamento, usare ExecuteXmlReader o BeginExecuteXmlReader leggere query FOR XML.
Vedi anche
Si applica a
ExecuteReader(CommandBehavior)
Invia CommandText a Connection e compila SqlDataReader mediante uno dei valori di CommandBehavior.
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 valori di CommandBehavior.
Restituisce
Un oggetto SqlDataReader.
Eccezioni
È stato usato un valore SqlDbType diverso da Binary o VarBinary quando Value era impostato su Stream. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
-oppure-
Un SqlDbType oggetto diverso da Char, NChar, NVarChar, VarChar o Xml è stato usato quando Value è stato impostato su . TextReader
-oppure-
È stato usato un valore SqlDbType diverso da Xml quando Value era impostato su XmlReader.
Si è verificato un timeout durante un'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
Errore nell'oggetto Stream, XmlReader o TextReader durante un'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
L'elemento SqlConnection chiuso o eliminato durante l'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
L'oggetto Stream, XmlReader o TextReader è stato chiuso durante l'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
Esempio
Nell'esempio seguente viene creato un SqlCommandoggetto e quindi viene eseguito passando una stringa che è un'istruzione Transact-SQL SELECT 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.
Nota
Usare SequentialAccess per recuperare valori di grandi dimensioni e dati binari. In caso contrario, potrebbe verificarsi un OutOfMemoryException oggetto e la connessione verrà chiusa.
La funzionalità mars (Active Result Set) multipla consente più azioni usando la stessa connessione.
Se si usa ExecuteReader o BeginExecuteReader si accede ai dati XML, SQL Server restituirà i risultati XML superiori a 2.033 caratteri in lunghezza in più righe di 2.033 caratteri ciascuno. Per evitare questo comportamento, usare ExecuteXmlReader o BeginExecuteXmlReader 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