Bagikan melalui


IDataReader Antarmuka

Definisi

Menyediakan sarana membaca satu atau beberapa aliran hasil khusus maju yang diperoleh dengan menjalankan perintah di sumber data, dan diimplementasikan oleh penyedia data .NET yang mengakses database relasional.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
Turunan
Penerapan

Contoh

Contoh berikut membuat instans kelas turunan, , SqlConnection, SqlCommanddan SqlDataReader. Contohnya membaca data, menulisnya ke konsol. Akhirnya, contoh menutup SqlDataReader, lalu SqlConnection.

private static void ReadOrderData(string connectionString)
{
    string queryString =
        "SELECT OrderID, CustomerID FROM dbo.Orders;";

    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call Read before accessing data.
        while (reader.Read())
        {
            ReadSingleRow((IDataRecord)reader);
        }

        // Call Close when done reading.
        reader.Close();
    }
}

private static void ReadSingleRow(IDataRecord dataRecord)
{
    Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
Private Sub ReadOrderData(ByVal connectionString As String)
    Dim queryString As String = _
        "SELECT OrderID, CustomerID FROM dbo.Orders;"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        ' Call Read before accessing data.
        While reader.Read()
            ReadSingleRow(CType(reader, IDataRecord))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub

Private Sub ReadSingleRow(ByVal record As IDataRecord)
   Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub

Keterangan

Antarmuka IDataReader dan IDataRecord memungkinkan kelas warisan untuk mengimplementasikan DataReader kelas , yang menyediakan sarana untuk membaca satu atau beberapa aliran set hasil khusus maju. Untuk informasi selengkapnya tentang DataReader kelas, lihat Mengambil Data Menggunakan DataReader.

Aplikasi tidak membuat instans IDataReader antarmuka secara langsung, tetapi membuat instans kelas yang mewarisi IDataReader.

Kelas yang mewarisi IDataReader harus menerapkan anggota yang diwariskan, dan biasanya menentukan anggota tambahan untuk menambahkan fungsionalitas khusus penyedia.

Perubahan yang dilakukan pada hasil yang ditetapkan oleh proses atau utas lain saat data sedang dibaca mungkin terlihat oleh pengguna kelas yang mengimplementasikan IDataReader. Namun, perilaku yang tepat adalah penyedia dan waktu yang bergantung.

Catatan Bagi Implementer

Untuk mempromosikan konsistensi di antara penyedia data .NET Framework, beri nama kelas pewarisan dalam formulir Prv Perintah di mana Prv adalah awalan seragam yang diberikan kepada semua kelas di namespace layanan penyedia data .NET Framework tertentu. Misalnya, Sql adalah awalan SqlDataAdapter kelas di System.Data.SqlClient namespace layanan.

Pengguna tidak membuat instans kelas secara DataReader langsung. Sebaliknya, mereka mendapatkan DataReader instans melalui ExecuteReader metode Command objek . Oleh karena itu, Anda harus menandai DataReader konstruktor sebagai internal.

Properti

Depth

Mendapatkan nilai yang menunjukkan kedalaman bersarang untuk baris saat ini.

FieldCount

Mendapatkan jumlah kolom di baris saat ini.

(Diperoleh dari IDataRecord)
IsClosed

Mendapatkan nilai yang menunjukkan apakah pembaca data ditutup.

Item[Int32]

Mendapatkan kolom yang terletak di indeks yang ditentukan.

(Diperoleh dari IDataRecord)
Item[String]

Mendapatkan kolom dengan nama yang ditentukan.

(Diperoleh dari IDataRecord)
RecordsAffected

Mendapatkan jumlah baris yang diubah, disisipkan, atau dihapus oleh eksekusi pernyataan SQL.

Metode

Close()

IDataReader Menutup Objek.

Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, melepaskan, atau mereset sumber daya yang tidak terkelola.

(Diperoleh dari IDisposable)
GetBoolean(Int32)

Mendapatkan nilai kolom yang ditentukan sebagai Boolean.

(Diperoleh dari IDataRecord)
GetByte(Int32)

Mendapatkan nilai bilangan bulat 8-bit yang tidak ditandatangani dari kolom yang ditentukan.

(Diperoleh dari IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Membaca aliran byte dari offset kolom yang ditentukan ke dalam buffer sebagai array, dimulai pada offset buffer yang diberikan.

(Diperoleh dari IDataRecord)
GetChar(Int32)

Mendapatkan nilai karakter dari kolom yang ditentukan.

(Diperoleh dari IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

Membaca aliran karakter dari offset kolom yang ditentukan ke dalam buffer sebagai array, dimulai pada offset buffer yang diberikan.

(Diperoleh dari IDataRecord)
GetData(Int32)

Mengembalikan IDataReader untuk ordinal kolom yang ditentukan.

(Diperoleh dari IDataRecord)
GetDataTypeName(Int32)

Mendapatkan informasi jenis data untuk bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetDateTime(Int32)

Mendapatkan nilai data tanggal dan waktu dari bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetDecimal(Int32)

Mendapatkan nilai numerik posisi tetap dari bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetDouble(Int32)

Mendapatkan jumlah titik mengambang presisi ganda dari bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetFieldType(Int32)

Mendapatkan informasi yang Type sesuai dengan jenis Object yang akan dikembalikan dari GetValue(Int32).

(Diperoleh dari IDataRecord)
GetFloat(Int32)

Mendapatkan jumlah titik mengambang presisi tunggal dari bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetGuid(Int32)

Mengembalikan nilai GUID dari bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetInt16(Int32)

Mendapatkan nilai bilangan bulat bertanda 16-bit dari bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetInt32(Int32)

Mendapatkan nilai bilangan bulat bertanda 32-bit dari bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetInt64(Int32)

Mendapatkan nilai bilangan bulat bertanda 64-bit dari bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetName(Int32)

Mendapatkan nama untuk bidang yang akan ditemukan.

(Diperoleh dari IDataRecord)
GetOrdinal(String)

Mengembalikan indeks bidang bernama.

(Diperoleh dari IDataRecord)
GetSchemaTable()

Mengembalikan yang DataTable menjelaskan metadata kolom dari IDataReader.

Mengembalikan null jika perintah yang dijalankan tidak mengembalikan resultset, atau setelah NextResult() mengembalikan false.

GetString(Int32)

Mendapatkan nilai string dari bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetValue(Int32)

Mengembalikan nilai bidang yang ditentukan.

(Diperoleh dari IDataRecord)
GetValues(Object[])

Mengisi array objek dengan nilai kolom rekaman saat ini.

(Diperoleh dari IDataRecord)
IsDBNull(Int32)

Mengembalikan apakah bidang yang ditentukan diatur ke null.

(Diperoleh dari IDataRecord)
NextResult()

Memajukan pembaca data ke hasil berikutnya, saat membaca hasil pernyataan SQL batch.

Read()

Memajukan IDataReader ke rekaman berikutnya.

Berlaku untuk