SqlCommand.ExecuteReader Metoda

Definice

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:
SqlCommand.cs
Zdroj:
SqlCommand.cs
Zdroj:
SqlCommand.cs
Zdroj:
SqlCommand.cs

CommandText Odešle zprávu a Connection vytvoří .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

Návraty

Objekt SqlDataReader .

Výjimky

  • 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.
  • 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.

Stream Objekt XmlReadernebo 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.

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]));
            }
        }
    }

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.

Note

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.

Platí pro

ExecuteReader(CommandBehavior)

Zdroj:
SqlCommand.cs
Zdroj:
SqlCommand.cs
Zdroj:
SqlCommand.cs
Zdroj:
SqlCommand.cs

Odešle hodnotu do objektu CommandTextConnectiona vytvoří SqlDataReader jednu z CommandBehavior hodnot.

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

Parametry

behavior
CommandBehavior

Jedna z CommandBehavior hodnot.

Návraty

Objekt SqlDataReader .

Výjimky

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.

Stream Objekt XmlReadernebo 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.

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]));
            }
        }
    }
}

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.

Note

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.

Platí pro