Bagikan melalui


IDataRecord Antarmuka

Definisi

Menyediakan akses ke nilai kolom dalam setiap baris untuk DataReader, dan diimplementasikan oleh penyedia data .NET yang mengakses database relasional.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Turunan

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. Ini menyediakan cara membaca satu atau beberapa aliran kumpulan hasil khusus maju. Untuk informasi selengkapnya tentang DataReader kelas, lihat Mengambil Data Menggunakan DataReader.

Aplikasi tidak membuat instans IDataRecord antarmuka secara langsung, tetapi membuat instans kelas yang mewarisi IDataRecord. Biasanya, Anda melakukan ini dengan mendapatkan DataReader melalui ExecuteReader metode Command objek .

Kelas yang mewarisi IDataRecord harus mengimplementasikan semua anggota yang diwariskan, dan biasanya menentukan anggota tambahan untuk menambahkan fungsionalitas khusus penyedia.

Penyedia yang menerapkan DataReader diperlukan untuk mengekspos data dalam jenis runtime bahasa umum (CLR). Koersi jenis didefinisikan untuk beberapa jenis yang tidak disertakan dalam CLR. Nilai-nilai ini dapat diakses sebagai jenis alternatif yang mematuhi jenis CLR. Sebagai contoh, tabel berikut mencantumkan pemetaan yang disarankan dari jenis data OLE DB ke jenis CLR, dengan jenis alternatif dalam tanda kurung.

Jenis OLE DB jenis CLR
DBTYPE_BOOL Int16
DBTYPE_BSTR string
DBTYPE_BYTES byte[]
DBTYPE_CY Desimal
DBTYPE_DATE DateTime
DBTYPE_DBDATE DateTime
DBTYPE_DBTIME DateTime
DBTYPE_DBTIMESTAMP DateTime
DBTYPE_DECIMAL Desimal
DBTYPE_EMPTY null
DBTYPE_ERROR ExternalException
DBTYPE_FILETIME DateTime
DBTYPE_GUID Guid
DBTYPE_HCHAPTER tidak didukung
DBTYPE_I1 Sbyte
DBTYPE_I2 Int16
DBTYPE_I4 Int32
DBTYPE_I8 Int64
DBTYPE_IDISPATCH objek
DBTYPE_IUNKNOWN objek
DBTYPE_NULL DBNull.Value
DBTYPE_NUMERIC Desimal
DBTYPE_PROPVARIANT objek
DBTYPE_R4 Tunggal
DBTYPE_R8 Double
DBTYPE_STR string
DBTYPE_UDT tidak didukung
DBTYPE_UI1 byte (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (Desimal)
DBTYPE_VARIANT objek
DBTYPE_VARNUMERIC tidak didukung
DBTYPE_WSTR string

Properti

FieldCount

Mendapatkan jumlah kolom di baris saat ini.

Item[Int32]

Mendapatkan kolom yang terletak di indeks yang ditentukan.

Item[String]

Mendapatkan kolom dengan nama yang ditentukan.

Metode

GetBoolean(Int32)

Mendapatkan nilai kolom yang ditentukan sebagai Boolean.

GetByte(Int32)

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

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.

GetChar(Int32)

Mendapatkan nilai karakter dari kolom yang ditentukan.

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.

GetData(Int32)

Mengembalikan IDataReader untuk ordinal kolom yang ditentukan.

GetDataTypeName(Int32)

Mendapatkan informasi jenis data untuk bidang yang ditentukan.

GetDateTime(Int32)

Mendapatkan nilai data tanggal dan waktu dari bidang yang ditentukan.

GetDecimal(Int32)

Mendapatkan nilai numerik posisi tetap dari bidang yang ditentukan.

GetDouble(Int32)

Mendapatkan jumlah titik mengambang presisi ganda dari bidang yang ditentukan.

GetFieldType(Int32)

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

GetFloat(Int32)

Mendapatkan jumlah titik mengambang presisi tunggal dari bidang yang ditentukan.

GetGuid(Int32)

Mengembalikan nilai GUID dari bidang yang ditentukan.

GetInt16(Int32)

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

GetInt32(Int32)

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

GetInt64(Int32)

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

GetName(Int32)

Mendapatkan nama untuk bidang yang akan ditemukan.

GetOrdinal(String)

Mengembalikan indeks bidang bernama.

GetString(Int32)

Mendapatkan nilai string dari bidang yang ditentukan.

GetValue(Int32)

Mengembalikan nilai bidang yang ditentukan.

GetValues(Object[])

Mengisi array objek dengan nilai kolom rekaman saat ini.

IsDBNull(Int32)

Mengembalikan apakah bidang yang ditentukan diatur ke null.

Berlaku untuk