SqlCommand.ExecuteReader Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Odešle do CommandTextConnection a vytvoří SqlDataReader.
Přetížení
ExecuteReader() |
Odešle do CommandTextConnection a vytvoří SqlDataReader. |
ExecuteReader(CommandBehavior) |
Odešle hodnotu CommandText do a vytvoří SqlDataReader pomocí jedné z CommandBehaviorConnectionhodnot. |
ExecuteReader()
Odešle do CommandTextConnection a vytvoří 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
Návraty
Objekt SqlDataReader .
Výjimky
Při SqlDbType nastavení na Streamhodnotu byla použita Value jiná hodnota než Binary nebo VarBinary. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
-nebo-
Při SqlDbType nastavení na TextReaderhodnotu se použila Value jiná hodnota než Char, NChar, NVarChar, VarChar nebo XML.
-nebo-
Při SqlDbType nastavení na XmlReaderhodnotu byla použita Value jiná hodnota než XML.
Při provádění příkazu na uzamčený řádek došlo k výjimce. Tato výjimka se negeneruje, pokud používáte rozhraní Microsoft .NET Framework verze 1.0.
-nebo-
Během operace streamování došlo k vypršení časového limitu. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Aktuální stav připojení je uzavřen. ExecuteReader() vyžaduje otevřenou SqlConnectionadresu .
-nebo-
Zavřený SqlConnection nebo vynechaný během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Během operace streamování došlo v objektu Streamnebo TextReaderXmlReader k chybě. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Objekt Streamnebo XmlReaderTextReader byl uzavřen během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Příklady
Následující příklad vytvoří SqlCommanda pak ho spustí předáním řetězce, který je příkazem Transact-SQL SELECT, a řetězce, který se má použít pro připojení ke zdroji dat.
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
Poznámky
CommandType Pokud je vlastnost nastavena na StoredProcedure
, CommandText vlastnost by měla být nastavena na název uložené procedury. Příkaz spustí tuto uloženou proceduru při volání ExecuteReaderpříkazu .
Poznámka
Pokud je transakce zablokovaná, nemusí být vyvolána výjimka, dokud Read není volána.
Funkce MARS (Multiple Active Result Set) umožňuje používat více akcí pomocí stejného připojení.
Pokud používáte ExecuteReader data XML nebo BeginExecuteReader k datům XML, vrátí SQL Server všechny výsledky XML delší než 2 033 znaků ve více řádcích po 2 033 znacích. Chcete-li se tomuto chování vyhnout, použijte ExecuteXmlReader nebo BeginExecuteXmlReader ke čtení dotazů FOR XML.
Viz také
Platí pro
ExecuteReader(CommandBehavior)
Odešle hodnotu CommandText do a vytvoří SqlDataReader pomocí jedné z CommandBehaviorConnectionhodnot.
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
Parametry
- behavior
- CommandBehavior
Jedna z CommandBehavior hodnot.
Návraty
Objekt SqlDataReader .
Výjimky
Při SqlDbType nastavení na Streamhodnotu byla použita Value jiná hodnota než Binary nebo VarBinary. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
-nebo-
Při SqlDbType nastavení na TextReaderhodnotu se použila Value jiná hodnota než Char, NChar, NVarChar, VarChar nebo XML.
-nebo-
Při SqlDbType nastavení na XmlReaderhodnotu byla použita Value jiná hodnota než XML.
Během operace streamování došlo k vypršení časového limitu. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Během operace streamování došlo v objektu Streamnebo TextReaderXmlReader k chybě. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Zavřený SqlConnection nebo vynechaný během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Objekt Streamnebo XmlReaderTextReader byl uzavřen během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Příklady
Následující příklad vytvoří SqlCommanda pak ho spustí předáním řetězce, který je příkazem Transact-SQL SELECT, a řetězce, který se má použít pro připojení ke zdroji dat. CommandBehavior je nastavená na CloseConnectionhodnotu .
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
Poznámky
CommandType Pokud je vlastnost nastavena na StoredProcedure
, CommandText vlastnost by měla být nastavena na název uložené procedury. Příkaz spustí tuto uloženou proceduru při volání ExecuteReaderpříkazu .
Poznámka
Slouží SequentialAccess k načtení velkých hodnot a binárních dat. V opačném OutOfMemoryException případě může dojít k chybě a připojení bude ukončeno.
Funkce MARS (Multiple Active Result Set) umožňuje používat více akcí pomocí stejného připojení.
Pokud používáte ExecuteReader data XML nebo BeginExecuteReader k datům XML, vrátí SQL Server všechny výsledky XML delší než 2 033 znaků ve více řádcích po 2 033 znacích. Chcete-li se tomuto chování vyhnout, použijte ExecuteXmlReader nebo BeginExecuteXmlReader ke čtení dotazů FOR XML.
Viz také
- Připojení a načítání dat v ADO.NET
- Použití zprostředkovatele dat rozhraní .NET Framework pro SQL Server
- Přehled ADO.NET