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 maju dari database SQL Server. Kelas ini tidak dapat diwariskan.
public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable, System::Data::Common::IDbColumnSchemaGenerator
public ref class SqlDataReader : System::Data::Common::DbDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable, System.Data.Common.IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader
type SqlDataReader = class
inherit DbDataReader
interface IDataReader
interface IDisposable
interface IDataRecord
type SqlDataReader = class
inherit DbDataReader
interface IDataReader
interface IDataRecord
interface IDisposable
type SqlDataReader = class
inherit DbDataReader
interface IDbColumnSchemaGenerator
interface IDisposable
type SqlDataReader = class
inherit DbDataReader
interface IDbColumnSchemaGenerator
interface IDataReader
interface IDataRecord
interface IDisposable
type SqlDataReader = class
inherit DbDataReader
interface IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator, IDisposable
Public Class SqlDataReader
Inherits DbDataReader
- Warisan
-
SqlDataReader
- 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.
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
ReadOrderData(str);
}
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 record)
{
Console.WriteLine(String.Format("{0}, {1}", record[0], record[1]));
}
}
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.
Catatan
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
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 kolom ordinal. |
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. |
SensitivityClassification |
SensitivityClassification Mendapatkan informasi dengan SqlDataReader. |
VisibleFieldCount |
Mendapatkan jumlah bidang dalam SqlDataReader bidang yang tidak disembunyikan. |
Metode
Close() |
SqlDataReader Menutup objek. |
Dispose(Boolean) |
Menyediakan cara membaca aliran baris khusus maju dari database SQL Server. Kelas ini tidak dapat diwariskan. |
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. |
GetColumnSchema() |
Mendapatkan kumpulan skema kolom baca-saja. |
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. |
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 IEnumerator yang 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. |
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). |
GetInt16(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai bilangan bulat bertanda 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 64-bit. |
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. |
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. |
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 , 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. |
NextResult() |
Memajukan pembaca data ke hasil berikutnya, saat membaca hasil pernyataan Transact-SQL batch. |
NextResultAsync(CancellationToken) |
Versi asinkron , 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(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. |
Implementasi Antarmuka Eksplisit
IDataRecord.GetData(Int32) |
Mengembalikan IDataReader untuk ordinal kolom yang ditentukan. |