SqlCommand.ExecuteReader Yöntem

Tanım

Aşırı Yüklemeler

Name Description
ExecuteReader()

öğesine CommandTextConnection gönderir ve bir SqlDataReaderoluşturur.

ExecuteReader(CommandBehavior)

CommandText öğesine Connectiongönderir ve değerlerden birini SqlDataReader kullanarak bir CommandBehavior oluşturur.

ExecuteReader()

Kaynak:
SqlCommand.cs
Kaynak:
SqlCommand.cs
Kaynak:
SqlCommand.cs
Kaynak:
SqlCommand.cs

öğesine CommandTextConnection gönderir ve bir SqlDataReaderoluşturur.

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

Döndürülenler

Bir SqlDataReader nesnesi.

Özel durumlar

  • Kilitli bir satırda komut yürütülürken bir özel durum oluştu. Bu özel durum, Microsoft .NET Framework sürüm 1.0 kullanırken oluşturulmaz.
  • Akış işlemi sırasında zaman aşımı oluştu. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.

Akış işlemi sırasında bir Streamveya XmlReaderTextReader nesnesinde hata oluştu. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.

bir Streamakış işlemi sırasında , XmlReader veya TextReader nesnesi kapatıldı. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.

Örnekler

Aşağıdaki örnek bir SqlCommandoluşturur ve ardından Transact-SQL SELECT deyimi olan bir dizeyi ve veri kaynağına bağlanmak için kullanılacak dizeyi geçirerek yürütür.

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

Açıklamalar

CommandType özelliği olarak StoredProcedureCommandText ayarlandığında, özelliği saklı yordamın adına ayarlanmalıdır. komutu çağırdığınızda ExecuteReaderbu saklı yordamı yürütür.

Uyarı

Bir işlem kilitlenmesi durumunda çağrılana kadar Read bir özel durum oluşturulamayabilir.

Birden çok etkin sonuç kümesi (MARS) özelliği, aynı bağlantıyı kullanan birden çok eyleme olanak tanır.

XML verilerine erişmek için veya ExecuteReader kullanırsanızBeginExecuteReader, SQL Server her biri 2.033 karakterden oluşan birden çok satırda 2.033 karakterden uzun tüm XML sonuçlarını döndürür. Bu davranışı önlemek için veya ExecuteXmlReader komutunu kullanarak BeginExecuteXmlReader FOR XML sorgularını okuyun.

Şunlara uygulanır

ExecuteReader(CommandBehavior)

Kaynak:
SqlCommand.cs
Kaynak:
SqlCommand.cs
Kaynak:
SqlCommand.cs
Kaynak:
SqlCommand.cs

CommandText öğesine Connectiongönderir ve değerlerden birini SqlDataReader kullanarak bir CommandBehavior oluşturur.

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

Parametreler

behavior
CommandBehavior

Değerlerden CommandBehavior biri.

Döndürülenler

Bir SqlDataReader nesnesi.

Özel durumlar

Akış işlemi sırasında zaman aşımı oluştu. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.

Akış işlemi sırasında bir Streamveya XmlReaderTextReader nesnesinde hata oluştu. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.

Akış SqlConnection işlemi sırasında kapatılan veya bırakılan. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.

bir Streamakış işlemi sırasında , XmlReader veya TextReader nesnesi kapatıldı. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.

Örnekler

Aşağıdaki örnek bir SqlCommandoluşturur ve ardından Transact-SQL SELECT deyimi olan bir dizeyi ve veri kaynağına bağlanmak için kullanılacak dizeyi geçirerek yürütür. CommandBehavior olarak ayarlanır 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]));
            }
        }
    }
}

Açıklamalar

CommandType özelliği olarak StoredProcedureCommandText ayarlandığında, özelliği saklı yordamın adına ayarlanmalıdır. komutu çağırdığınızda ExecuteReaderbu saklı yordamı yürütür.

Uyarı

Büyük değerleri ve ikili verileri almak için kullanın SequentialAccess . Aksi takdirde, bir OutOfMemoryException oluşabilir ve bağlantı kapatılır.

Birden çok etkin sonuç kümesi (MARS) özelliği, aynı bağlantıyı kullanan birden çok eyleme olanak tanır.

XML verilerine erişmek için veya ExecuteReader kullanırsanızBeginExecuteReader, SQL Server her biri 2.033 karakterden oluşan birden çok satırda 2.033 karakterden uzun tüm XML sonuçlarını döndürür. Bu davranışı önlemek için veya ExecuteXmlReader komutunu kullanarak BeginExecuteXmlReader FOR XML sorgularını okuyun.

Şunlara uygulanır