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