IDataRecord Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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. |