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.
Overload
| ExecuteReader() |
Invia a CommandTextConnection e compila un oggetto SqlDataReader . |
| ExecuteReader(CommandBehavior) |
Invia a CommandTextConnection e compila un SqlDataReader oggetto utilizzando uno dei CommandBehavior valori . |
ExecuteReader()
Invia a CommandTextConnection e compila un oggetto SqlDataReader .
public:
Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader();
override this.ExecuteReader : unit -> Microsoft.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader
Restituisce
Un oggetto SqlDataReader.
Eccezioni
Un SqlDbType oggetto diverso da Binary o VarBinary è stato usato quando Value è stato 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-
È SqlDbType stato utilizzato un valore diverso da Xml quando Value è stato 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. ExecuteReader() richiede un oggetto aperto SqlConnection .
-oppure-
L'elemento SqlConnection chiuso o eliminato durante l'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
Si è verificato un errore in un Stream oggetto o XmlReaderTextReader durante un'operazione di streaming. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
L'oggetto Stream o XmlReaderTextReader è stato chiuso durante un'operazione di streaming. 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.
// <Snippet1>
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
CreateCommand(qs, str);
}
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]));
}
}
}
// </Snippet1>
}
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, è possibile che non venga generata un'eccezione fino a quando Read non viene chiamata.
La funzionalità mars (Multiple Active Result Set) consente più azioni usando la stessa connessione.
Se si utilizza ExecuteReader o BeginExecuteReader per accedere ai dati XML, SQL Server restituirà risultati XML maggiori di 2.033 caratteri in più righe di 2.033 caratteri ciascuno. Per evitare questo comportamento, utilizzare ExecuteXmlReader o BeginExecuteXmlReader per leggere le query FOR XML.
Si applica a
ExecuteReader(CommandBehavior)
Invia a CommandTextConnection e compila un SqlDataReader oggetto utilizzando uno dei CommandBehavior valori .
public:
Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader(System::Data::CommandBehavior behavior);
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior);
override this.ExecuteReader : System.Data.CommandBehavior -> Microsoft.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader
Parametri
- behavior
- CommandBehavior
Uno dei valori di CommandBehavior.
Restituisce
Un oggetto SqlDataReader.
Eccezioni
Un SqlDbType oggetto diverso da Binary o VarBinary è stato usato quando Value è stato 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-
È SqlDbType stato utilizzato un valore diverso da Xml quando Value è stato impostato su XmlReader .
Si è verificato un timeout durante un'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
Si è verificato un errore in un Stream oggetto o XmlReaderTextReader durante un'operazione di streaming. 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 o XmlReaderTextReader è stato chiuso durante un'operazione di streaming. 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.
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
CreateCommand(qs, str);
}
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]));
}
}
}
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 oggetto OutOfMemoryException e la connessione verrà chiusa.
La funzionalità mars (Multiple Active Result Set) consente più azioni usando la stessa connessione.
Se si utilizza ExecuteReader o BeginExecuteReader per accedere ai dati XML, SQL Server restituirà risultati XML maggiori di 2.033 caratteri in più righe di 2.033 caratteri ciascuno. Per evitare questo comportamento, utilizzare ExecuteXmlReader o BeginExecuteXmlReader per leggere le query FOR XML.