SqlCommand.ExecuteReader Metoda

Definicja

Przeciążenia

Nazwa Opis
ExecuteReader()

Wysyła element CommandText do pliku Connection i tworzy element SqlDataReader.

ExecuteReader(CommandBehavior)

Wysyła element CommandText do elementu Connectioni tworzy obiekt SqlDataReader przy użyciu jednej z CommandBehavior wartości.

ExecuteReader()

Źródło:
SqlCommand.cs
Źródło:
SqlCommand.cs
Źródło:
SqlCommand.cs
Źródło:
SqlCommand.cs

Wysyła element CommandText do pliku Connection i tworzy element 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

Zwraca

Obiekt SqlDataReader.

Wyjątki

  • Wystąpił wyjątek podczas wykonywania polecenia względem zablokowanego wiersza. Ten wyjątek nie jest generowany w przypadku korzystania z programu Microsoft .NET Framework w wersji 1.0.
  • Wystąpił limit czasu podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Wystąpił błąd w StreamXmlReader obiekcie lub TextReader podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Stream Obiekt XmlReaderlub TextReader został zamknięty podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Przykłady

Poniższy przykład tworzy element SqlCommand, a następnie wykonuje go, przekazując ciąg, który jest instrukcją Transact-SQL SELECT, i ciągiem używanym do nawiązywania połączenia ze źródłem danych.

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

Uwagi

CommandType Gdy właściwość jest ustawiona na StoredProcedure, CommandText właściwość powinna być ustawiona na nazwę procedury składowanej. Polecenie wykonuje tę procedurę składowaną podczas wywoływania metody ExecuteReader.

Uwaga / Notatka

Jeśli transakcja zostanie zakleszona, wyjątek może nie zostać zgłoszony do momentu Read wywołania.

Funkcja wielu aktywnych zestawów wyników (MARS) umożliwia wykonywanie wielu akcji przy użyciu tego samego połączenia.

Jeśli używasz ExecuteReader danych XML lub BeginExecuteReader uzyskujesz do nich dostęp, program SQL Server zwróci wszystkie wyniki XML większe niż 2033 znaki w wielu wierszach o długości 2033 znaków. Aby uniknąć tego zachowania, użyj polecenia ExecuteXmlReader lub BeginExecuteXmlReader do odczytu zapytań XML.

Dotyczy

ExecuteReader(CommandBehavior)

Źródło:
SqlCommand.cs
Źródło:
SqlCommand.cs
Źródło:
SqlCommand.cs
Źródło:
SqlCommand.cs

Wysyła element CommandText do elementu Connectioni tworzy obiekt SqlDataReader przy użyciu jednej z CommandBehavior wartości.

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

CommandBehavior Jedna z wartości.

Zwraca

Obiekt SqlDataReader.

Wyjątki

Wystąpił limit czasu podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Wystąpił błąd w StreamXmlReader obiekcie lub TextReader podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Zamknięty SqlConnection lub porzucony podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Stream Obiekt XmlReaderlub TextReader został zamknięty podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Przykłady

Poniższy przykład tworzy element SqlCommand, a następnie wykonuje go, przekazując ciąg, który jest instrukcją Transact-SQL SELECT, i ciągiem używanym do nawiązywania połączenia ze źródłem danych. CommandBehavior jest ustawiony 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]));
            }
        }
    }
}

Uwagi

CommandType Gdy właściwość jest ustawiona na StoredProcedure, CommandText właściwość powinna być ustawiona na nazwę procedury składowanej. Polecenie wykonuje tę procedurę składowaną podczas wywoływania metody ExecuteReader.

Uwaga / Notatka

Służy SequentialAccess do pobierania dużych wartości i danych binarnych. W przeciwnym razie może dojść do OutOfMemoryException i połączenie zostanie zamknięte.

Funkcja wielu aktywnych zestawów wyników (MARS) umożliwia wykonywanie wielu akcji przy użyciu tego samego połączenia.

Jeśli używasz ExecuteReader danych XML lub BeginExecuteReader uzyskujesz do nich dostęp, program SQL Server zwróci wszystkie wyniki XML większe niż 2033 znaki w wielu wierszach o długości 2033 znaków. Aby uniknąć tego zachowania, użyj polecenia ExecuteXmlReader lub BeginExecuteXmlReader do odczytu zapytań XML.

Dotyczy