Sdílet prostřednictvím


SqlCommand.ExecuteReader Metoda

Definice

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()

Zdroj:
System.Data.SqlClient.notsupported.cs

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)

Zdroj:
System.Data.SqlClient.notsupported.cs

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é

Platí pro