Bagikan melalui


SqlCommand.ExecuteReader Metode

Definisi

Overload

ExecuteReader()

CommandText Mengirim ke Connection dan membangun SqlDataReader .

ExecuteReader(CommandBehavior)

CommandText Mengirim ke Connection , dan membangun SqlDataReader menggunakan salah CommandBehavior satu nilai.

ExecuteReader()

CommandText Mengirim ke Connection dan membangun 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

Mengembalikan

Objek SqlDataReader.

Pengecualian

Selain SqlDbTypeBiner atau VarBinary digunakan ketika Value diatur ke Stream . Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

-atau-

Selain SqlDbTypeChar, NChar, NVarChar, VarChar, atau Xml digunakan saat Value diatur ke TextReader .

-atau-

Selain SqlDbTypeXml digunakan ketika Value diatur ke XmlReader .

Terjadi pengecualian saat menjalankan perintah terhadap baris terkunci. Pengecualian ini tidak dihasilkan saat Anda menggunakan Microsoft .NET Framework versi 1.0.

-atau-

Waktu habis terjadi selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

Status sambungan saat ini ditutup. ExecuteReader()memerlukan .SqlConnection

-atau-

Ditutup SqlConnection atau dihilangkan selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

Terjadi kesalahan dalam Stream objek , XmlReader atau TextReader selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

Objek Stream , XmlReader atau TextReader ditutup selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

Contoh

Contoh berikut membuat SqlCommand, lalu menjalankannya dengan meneruskan string yang merupakan pernyataan T-SQL SELECT, dan string yang akan digunakan untuk menyambungkan ke sumber data.

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

Keterangan

CommandType Ketika properti diatur ke StoredProcedure, CommandText properti harus diatur ke nama prosedur tersimpan. Perintah menjalankan prosedur tersimpan ini saat Anda memanggil ExecuteReader.

Catatan

Jika transaksi mengalami kebuntuan, pengecualian mungkin tidak dilemparkan hingga Read dipanggil.

Fitur beberapa tataan hasil aktif (MARS) memungkinkan beberapa tindakan menggunakan koneksi yang sama.

Jika Anda menggunakan ExecuteReader atau BeginExecuteReader untuk mengakses data XML, SQL Server akan mengembalikan hasil XML apa pun yang lebih besar dari 2.033 karakter dalam beberapa baris masing-masing 2.033 karakter. Untuk menghindari perilaku ini, gunakan ExecuteXmlReader atau BeginExecuteXmlReader untuk membaca kueri XML.

Berlaku untuk

ExecuteReader(CommandBehavior)

CommandText Mengirim ke Connection , dan membangun SqlDataReader menggunakan salah CommandBehavior satu nilai.

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

Parameter

behavior
CommandBehavior

Salah CommandBehavior satu nilai.

Mengembalikan

Objek SqlDataReader.

Pengecualian

Selain SqlDbTypeBiner atau VarBinary digunakan ketika Value diatur ke Stream . Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

-atau-

Selain SqlDbTypeChar, NChar, NVarChar, VarChar, atau Xml digunakan saat Value diatur ke TextReader .

-atau-

Selain SqlDbTypeXml digunakan ketika Value diatur ke XmlReader .

Waktu habis terjadi selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

Terjadi kesalahan dalam Stream objek , XmlReader atau TextReader selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

Ditutup SqlConnection atau dihilangkan selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

Objek Stream , XmlReader atau TextReader ditutup selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.

Contoh

Contoh berikut membuat SqlCommand, lalu menjalankannya dengan meneruskan string yang merupakan pernyataan T-SQL SELECT, dan string yang akan digunakan untuk menyambungkan ke sumber data. CommandBehavior diatur ke 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]));
            }
        }
    }

Keterangan

CommandType Ketika properti diatur ke StoredProcedure, CommandText properti harus diatur ke nama prosedur tersimpan. Perintah menjalankan prosedur tersimpan ini saat Anda memanggil ExecuteReader.

Catatan

Gunakan SequentialAccess untuk mengambil nilai besar dan data biner. Jika tidak, OutOfMemoryException mungkin terjadi dan koneksi akan ditutup.

Fitur beberapa tataan hasil aktif (MARS) memungkinkan beberapa tindakan menggunakan koneksi yang sama.

Jika Anda menggunakan ExecuteReader atau BeginExecuteReader untuk mengakses data XML, SQL Server akan mengembalikan hasil XML apa pun yang lebih besar dari 2.033 karakter dalam beberapa baris masing-masing 2.033 karakter. Untuk menghindari perilaku ini, gunakan ExecuteXmlReader atau BeginExecuteXmlReader untuk membaca kueri XML.

Berlaku untuk