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í.
CommandText Odešle zprávu a Connection vytvoří .SqlDataReader
Přetížení
| Name | Description |
|---|---|
| ExecuteReader() |
CommandText Odešle zprávu a Connection vytvoří .SqlDataReader |
| ExecuteReader(CommandBehavior) |
Odešle hodnotu do objektu CommandTextConnectiona vytvoří SqlDataReader jednu z CommandBehavior hodnot. |
ExecuteReader()
CommandText Odešle zprávu a Connection 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
SqlDbType Jiný než Binary nebo VarBinary byl použit při Value nastavení Stream. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
nebo
SqlDbType Jiná hodnota než Char, NChar, NVarChar, VarChar nebo Xml byla použita při Value nastavení TextReader.
nebo
SqlDbType Jiná než Xml byla použita při Value nastavení na XmlReaderhodnotu .
Při provádění příkazu na uzamčený řádek došlo k výjimce. Tato výjimka není generována při použití 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 SqlConnection.
nebo
Zavřený SqlConnection nebo ukončený 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 k chybě nebo StreamXmlReaderTextReader objektu. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
XmlReader Objekt Streamnebo TextReader objekt 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ří a SqlCommandpak ho spustí předáním řetězce, který je příkazem Transact-SQL SELECT, a řetězcem, který se použije 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í ExecuteReader.
Poznámka:
Pokud je transakce zablokovaná, nemusí být vyvolána výjimka, dokud Read není volána.
Funkce více aktivních sad výsledků (MARS) umožňuje více akcí pomocí stejného připojení.
Pokud používáte ExecuteReader nebo BeginExecuteReader přistupujete k datům XML, VRÁTÍ SQL Server všechny výsledky XML větší než 2 033 znaků v několika řádcích o 2 033 znacích. Chcete-li se tomuto chování vyhnout, použijte ExecuteXmlReader nebo BeginExecuteXmlReader načtěte dotazy FOR XML.
Viz také
Platí pro
ExecuteReader(CommandBehavior)
Odešle hodnotu do objektu CommandTextConnectiona vytvoří SqlDataReader jednu z CommandBehavior hodnot.
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
SqlDbType Jiný než Binary nebo VarBinary byl použit při Value nastavení Stream. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
nebo
SqlDbType Jiná hodnota než Char, NChar, NVarChar, VarChar nebo Xml byla použita při Value nastavení TextReader.
nebo
SqlDbType Jiná než Xml byla použita při Value nastavení na XmlReaderhodnotu .
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 k chybě nebo StreamXmlReaderTextReader objektu. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Zavřený SqlConnection nebo ukončený během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
XmlReader Objekt Streamnebo TextReader objekt 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ří a SqlCommandpak ho spustí předáním řetězce, který je příkazem Transact-SQL SELECT, a řetězcem, který se použije pro připojení ke zdroji dat. CommandBehavior je nastaveno na 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
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í ExecuteReader.
Poznámka:
Slouží SequentialAccess k načtení velkých hodnot a binárních dat. V opačném případě může dojít k OutOfMemoryException, a připojení bude uzavřeno.
Funkce více aktivních sad výsledků (MARS) umožňuje více akcí pomocí stejného připojení.
Pokud používáte ExecuteReader nebo BeginExecuteReader přistupujete k datům XML, VRÁTÍ SQL Server všechny výsledky XML větší než 2 033 znaků v několika řádcích o 2 033 znacích. Chcete-li se tomuto chování vyhnout, použijte ExecuteXmlReader nebo BeginExecuteXmlReader načtěte dotazy 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