SqlCommand.ExecuteReader Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
öğesine CommandTextConnection gönderir ve bir SqlDataReaderoluşturur.
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()
öğ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 İkili veya Value dışında bir değer kullanıldıStream. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.
-veya-
SqlDbType Olarak ayarlandığında Char, NChar, NVarChar, VarChar veya Value dışında bir değer kullanıldıTextReader.
-veya-
SqlDbType olarak ayarlandığında Value dışında bir değer kullanıldıXmlReader.
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.
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.
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. komutu çağırdığınızda ExecuteReaderbu saklı yordamı yürütür.
Note
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.
Ayrıca bkz.
Şunlara uygulanır
ExecuteReader(CommandBehavior)
CommandText öğesine Connectiongönderir ve değerlerden birini SqlDataReader kullanarak bir CommandBehavior 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 İkili veya Value dışında bir değer kullanıldıStream. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.
-veya-
SqlDbType Olarak ayarlandığında Char, NChar, NVarChar, VarChar veya Value dışında bir değer kullanıldıTextReader.
-veya-
SqlDbType olarak ayarlandığında Value dışında bir değer kullanıldıXmlReader.
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.
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. komutu çağırdığınızda ExecuteReaderbu saklı yordamı yürütür.
Note
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.
Ayrıca bkz.
- ADO.NET'da Verileri Bağlama ve Alma
- SQL Server için .NET Framework Veri Sağlayıcısını Kullanma
- ADO.NET’e Genel Bakış