Aracılığıyla paylaş


SqlCommand.ExecuteReader Yöntem

Tanım

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

Aşırı Yüklemeler

ExecuteReader()

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

ExecuteReader(CommandBehavior)

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

ExecuteReader()

Kaynak:
System.Data.SqlClient.notsupported.cs

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

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

Döndürülenler

Bir SqlDataReader nesnesi.

Özel durumlar

SqlDbType olarak ayarlandığında Streamİkili veya VarBinary dışında bir değer kullanıldıValue. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.

-veya-

SqlDbType olarak ayarlandığında TextReaderChar, NChar, NVarChar, VarChar veya Xml dışında bir değer kullanıldıValue.

-veya-

olarak ayarlandığında XmlReaderXml dışında bir SqlDbType değer kullanıldıValue.

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.

-veya-

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

Bağlantının geçerli durumu kapatıldı. ExecuteReader() açık SqlConnectionbir gerektirir.

-veya-

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.

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.

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

Örnekler

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

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

Açıklamalar

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

Not

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 izin verir.

XML verilerine erişmek için veya BeginExecuteReader kullanırsanızExecuteReader, SQL Server her biri 2.033 karakterden oluşan birden çok satırda 2.033 karakterden uzun xml sonuçları döndürür. Bu davranışı önlemek için, FOR XML sorgularını okumak için veya BeginExecuteXmlReader kullanınExecuteXmlReader.

Ayrıca bkz.

Şunlara uygulanır

ExecuteReader(CommandBehavior)

Kaynak:
System.Data.SqlClient.notsupported.cs

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

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

Parametreler

behavior
CommandBehavior

Değerlerden CommandBehavior biri.

Döndürülenler

Bir SqlDataReader nesnesi.

Özel durumlar

SqlDbType olarak ayarlandığında Streamİkili veya VarBinary dışında bir değer kullanıldıValue. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.

-veya-

SqlDbType olarak ayarlandığında TextReaderChar, NChar, NVarChar, VarChar veya Xml dışında bir değer kullanıldıValue.

-veya-

olarak ayarlandığında XmlReaderXml dışında bir SqlDbType değer kullanıldıValue.

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.

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

Örnekler

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

Açıklamalar

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

Not

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 izin verir.

XML verilerine erişmek için veya BeginExecuteReader kullanırsanızExecuteReader, SQL Server her biri 2.033 karakterden oluşan birden çok satırda 2.033 karakterden uzun xml sonuçları döndürür. Bu davranışı önlemek için, FOR XML sorgularını okumak için veya BeginExecuteXmlReader kullanınExecuteXmlReader.

Ayrıca bkz.

Şunlara uygulanır