SqlDataReader Kelas
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 cara membaca aliran baris khusus ke depan dari database SQL Server. Kelas ini tidak dapat diwariskan.
public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
type SqlDataReader = class
inherit DbDataReader
interface IDisposable
type SqlDataReader = class
inherit MarshalByRefObject
interface IEnumerable
interface IDataReader
interface IDisposable
interface IDataRecord
type SqlDataReader = class
inherit DbDataReader
interface IDataReader
interface IDisposable
interface IDataRecord
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
- Warisan
- Warisan
- Warisan
- Penerapan
Contoh
Contoh berikut membuat SqlConnection, , SqlCommanddan SqlDataReader. Contohnya membaca data, menulisnya ke jendela konsol. Kode kemudian menutup SqlDataReader.
SqlConnection ditutup secara otomatis di akhir using blok kode.
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
Untuk membuat SqlDataReader, Anda harus memanggil ExecuteReader metode SqlCommand objek, alih-alih langsung menggunakan konstruktor.
SqlDataReader Saat sedang digunakan, yang terkait SqlConnection sibuk melayani SqlDataReader, dan tidak ada operasi lain yang dapat dilakukan selain SqlConnection menutupnya. Ini adalah kasus sampai Close metode dipanggil SqlDataReader . Misalnya, Anda tidak dapat mengambil parameter output hingga setelah Anda memanggil Close.
Perubahan yang dilakukan pada hasil yang ditetapkan oleh proses atau utas lain saat data sedang dibaca mungkin terlihat oleh pengguna SqlDataReader. Namun, perilaku yang tepat tergantung pada waktunya.
IsClosed dan RecordsAffected adalah satu-satunya properti yang dapat Anda panggil setelah SqlDataReader ditutup. RecordsAffected Meskipun properti dapat diakses saat SqlDataReader ada, selalu panggil Close sebelum mengembalikan nilai RecordsAffected untuk menjamin nilai pengembalian yang akurat.
Saat menggunakan akses berurutan (CommandBehavior.SequentialAccess), InvalidOperationException akan dinaikkan jika SqlDataReader posisi ditingkatkan dan operasi baca lain dicoba pada kolom sebelumnya.
Nota
Untuk performa optimal, SqlDataReader hindari membuat objek yang tidak perlu atau membuat salinan data yang tidak perlu. Oleh karena itu, beberapa panggilan ke metode seperti GetValue mengembalikan referensi ke objek yang sama. Berhati-hatilah jika Anda memodifikasi nilai yang mendasar dari objek yang dikembalikan oleh metode seperti GetValue.
Properti
| Nama | Deskripsi |
|---|---|
| Connection |
Mendapatkan yang SqlConnection terkait dengan SqlDataReader. |
| Depth |
Mendapatkan nilai yang menunjukkan kedalaman bersarang untuk baris saat ini. |
| FieldCount |
Mendapatkan jumlah kolom di baris saat ini. |
| HasRows |
Mendapatkan nilai yang menunjukkan apakah SqlDataReader berisi satu atau beberapa baris. |
| IsClosed |
Mengambil nilai Boolean yang menunjukkan apakah instans yang ditentukan SqlDataReader telah ditutup. |
| Item[Int32] |
Mendapatkan nilai kolom yang ditentukan dalam format aslinya mengingat ordinal kolom. |
| Item[String] |
Mendapatkan nilai kolom yang ditentukan dalam format aslinya dengan nama kolom. |
| RecordsAffected |
Mendapatkan jumlah baris yang diubah, disisipkan, atau dihapus oleh eksekusi pernyataan Transact-SQL. |
| VisibleFieldCount |
Mendapatkan jumlah bidang dalam SqlDataReader bidang yang tidak disembunyikan. |
Metode
| Nama | Deskripsi |
|---|---|
| Close() |
SqlDataReader Menutup objek. |
| CreateObjRef(Type) |
Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh. (Diperoleh dari MarshalByRefObject) |
| Dispose() |
Merilis semua sumber daya yang digunakan oleh instans DbDataReader kelas saat ini. (Diperoleh dari DbDataReader) |
| Dispose(Boolean) |
Merilis sumber daya yang tidak dikelola yang DbDataReader digunakan oleh dan secara opsional merilis sumber daya terkelola. (Diperoleh dari DbDataReader) |
| Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
| GetBoolean(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai Boolean. |
| GetByte(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai byte. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Membaca aliran byte dari offset kolom yang ditentukan ke dalam buffer array yang dimulai pada offset buffer yang diberikan. |
| GetChar(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai satu karakter. |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
Membaca aliran karakter dari offset kolom yang ditentukan ke dalam buffer sebagai array yang dimulai pada offset buffer yang diberikan. |
| GetData(Int32) |
Mengembalikan IDataReader untuk ordinal kolom yang ditentukan. |
| GetData(Int32) |
Mengembalikan pembaca data berlapis untuk kolom yang diminta. (Diperoleh dari DbDataReader) |
| GetDataTypeName(Int32) |
Mendapatkan string yang mewakili jenis data kolom yang ditentukan. |
| GetDateTime(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai DateTime objek. |
| GetDateTimeOffset(Int32) |
Mengambil nilai kolom yang ditentukan sebagai DateTimeOffset objek. |
| GetDbDataReader(Int32) |
Mengembalikan DbDataReader objek untuk ordinal kolom yang diminta yang dapat ditimpa dengan implementasi khusus penyedia. (Diperoleh dari DbDataReader) |
| GetDecimal(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai Decimal objek. |
| GetDouble(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai angka titik mengambang presisi ganda. |
| GetEnumerator() |
Mengembalikan yang IEnumerator berulang melalui SqlDataReader. |
| GetFieldType(Int32) |
Type Mendapatkan yang merupakan jenis data objek. |
| GetFieldValue<T>(Int32) |
Secara sinkron mendapatkan nilai kolom yang ditentukan sebagai jenis. GetFieldValueAsync<T>(Int32, CancellationToken) adalah versi asinkron dari metode ini. |
| GetFieldValueAsync<T>(Int32, CancellationToken) |
Secara asinkron mendapatkan nilai kolom yang ditentukan sebagai jenis. GetFieldValue<T>(Int32) adalah versi sinkron dari metode ini. |
| GetFieldValueAsync<T>(Int32) |
Secara asinkron mendapatkan nilai kolom yang ditentukan sebagai jenis yang diminta. (Diperoleh dari DbDataReader) |
| GetFloat(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai angka titik mengambang presisi tunggal. |
| GetGuid(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai pengidentifikasi unik global (GUID). |
| GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
| GetInt16(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai bilangan bulat bertanda tangan 16-bit. |
| GetInt32(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai bilangan bulat bertanda tangan 32-bit. |
| GetInt64(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai bilangan bulat bertanda tangan 64-bit. |
| GetLifetimeService() |
Kedaluwarsa.
Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
| GetName(Int32) |
Mendapatkan nama kolom yang ditentukan. |
| GetOrdinal(String) |
Mendapatkan kolom ordinal, dengan nama kolom. |
| GetProviderSpecificFieldType(Int32) |
Mendapatkan yang merupakan representasi dari jenis bidang khusus penyedia yang mendasar |
| GetProviderSpecificValue(Int32) |
Mendapatkan yang merupakan representasi dari nilai spesifik penyedia yang mendasar |
| GetProviderSpecificValues(Object[]) |
Mendapatkan array objek yang merupakan representasi dari nilai spesifik penyedia yang mendasar. |
| GetSchemaTable() |
Mengembalikan yang DataTable menjelaskan metadata kolom dari SqlDataReader. |
| GetSqlBinary(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlBinary. |
| GetSqlBoolean(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlBoolean. |
| GetSqlByte(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlByte. |
| GetSqlBytes(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlBytes. |
| GetSqlChars(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlChars. |
| GetSqlDateTime(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlDateTime. |
| GetSqlDecimal(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlDecimal. |
| GetSqlDouble(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlDouble. |
| GetSqlGuid(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlGuid. |
| GetSqlInt16(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlInt16. |
| GetSqlInt32(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlInt32. |
| GetSqlInt64(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlInt64. |
| GetSqlMoney(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlMoney. |
| GetSqlSingle(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlSingle. |
| GetSqlString(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai SqlString. |
| GetSqlValue(Int32) |
Mengembalikan nilai data dalam kolom yang ditentukan sebagai jenis SQL Server. |
| GetSqlValues(Object[]) |
Mengisi array Object yang berisi nilai untuk semua kolom dalam rekaman, yang dinyatakan sebagai jenis SQL Server. |
| GetSqlXml(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai nilai XML. |
| GetStream(Int32) |
Mengambil jenis data biner, gambar, varbinary, UDT, dan varian sebagai Stream. |
| GetString(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai string. |
| GetTextReader(Int32) |
Mengambil jenis data Char, NChar, NText, NVarChar, teks, varChar, dan Varian sebagai TextReader. |
| GetTimeSpan(Int32) |
Mengambil nilai kolom yang ditentukan sebagai TimeSpan objek. |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| GetValue(Int32) |
Mendapatkan nilai kolom yang ditentukan dalam format aslinya. |
| GetValues(Object[]) |
Mengisi array objek dengan nilai kolom baris saat ini. |
| GetXmlReader(Int32) |
Mengambil data jenis XML sebagai XmlReader. |
| InitializeLifetimeService() |
Kedaluwarsa.
Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
| IsCommandBehavior(CommandBehavior) |
Menentukan apakah yang ditentukan CommandBehavior cocok dengan SqlDataReader . |
| IsDBNull(Int32) |
Mendapatkan nilai yang menunjukkan apakah kolom berisi nilai yang tidak ada atau hilang. |
| IsDBNullAsync(Int32, CancellationToken) |
Versi asinkron dari IsDBNull(Int32), yang mendapatkan nilai yang menunjukkan apakah kolom berisi nilai yang tidak ada atau hilang. Token pembatalan dapat digunakan untuk meminta agar operasi ditinggalkan sebelum batas waktu perintah berlalu. Pengecualian akan dilaporkan melalui objek Tugas yang dikembalikan. |
| IsDBNullAsync(Int32) |
Secara asinkron mendapatkan nilai yang menunjukkan apakah kolom berisi nilai yang tidak ada atau hilang. (Diperoleh dari DbDataReader) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| MemberwiseClone(Boolean) |
Membuat salinan dangkal objek saat ini MarshalByRefObject . (Diperoleh dari MarshalByRefObject) |
| NextResult() |
Memajukan pembaca data ke hasil berikutnya, saat membaca hasil pernyataan Transact-SQL batch. |
| NextResultAsync() |
Secara asinkron memajukan pembaca ke hasil berikutnya saat membaca hasil batch pernyataan. (Diperoleh dari DbDataReader) |
| NextResultAsync(CancellationToken) |
Versi asinkron dari NextResult(), yang memajukan pembaca data ke hasil berikutnya, saat membaca hasil pernyataan Transact-SQL batch. Token pembatalan dapat digunakan untuk meminta agar operasi ditinggalkan sebelum batas waktu perintah berlalu. Pengecualian akan dilaporkan melalui objek Tugas yang dikembalikan. |
| Read() |
Memajukan SqlDataReader ke rekaman berikutnya. |
| ReadAsync() |
Secara asinkron memajukan pembaca ke rekaman berikutnya dalam kumpulan hasil. (Diperoleh dari DbDataReader) |
| ReadAsync(CancellationToken) |
Versi asinkron dari Read(), yang memajukan SqlDataReader ke rekaman berikutnya. Token pembatalan dapat digunakan untuk meminta agar operasi ditinggalkan sebelum batas waktu perintah berlalu. Pengecualian akan dilaporkan melalui objek Tugas yang dikembalikan. |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IDataReader.Close() |
Untuk deskripsi anggota ini, lihat Close(). (Diperoleh dari DbDataReader) |
| IDataReader.GetSchemaTable() |
Untuk deskripsi anggota ini, lihat GetSchemaTable(). (Diperoleh dari DbDataReader) |
| IDataRecord.GetData(Int32) |
Mengembalikan IDataReader untuk ordinal kolom yang ditentukan. |
| IDataRecord.GetData(Int32) |
Untuk deskripsi anggota ini, lihat GetData(Int32). (Diperoleh dari DbDataReader) |
| IDisposable.Dispose() |
Merilis semua sumber daya yang digunakan oleh pembaca data. |
| IEnumerable.GetEnumerator() |
Mengembalikan enumerator yang dapat digunakan untuk melakukan iterasi melalui kumpulan item. |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| AsParallel(IEnumerable) |
Mengaktifkan paralelisasi kueri. |
| AsQueryable(IEnumerable) |
Mengonversi IEnumerable menjadi IQueryable. |
| CanGetColumnSchema(DbDataReader) |
Mendapatkan nilai yang menunjukkan apakah DbDataReader bisa mendapatkan skema kolom. |
| Cast<TResult>(IEnumerable) |
Melemparkan elemen IEnumerable ke jenis yang ditentukan. |
| GetColumnSchema(DbDataReader) |
Mendapatkan skema kolom (DbColumn koleksi) untuk DbDataReader. |
| OfType<TResult>(IEnumerable) |
Memfilter elemen IEnumerable berdasarkan jenis tertentu. |