Bagikan melalui


SqlDataReader Kelas

Definisi

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 sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class SqlDataReader : System::Data::Common::DbDataReader, System::Data::Common::IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, System.Data.Common.IDbColumnSchemaGenerator
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
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
    interface IDbColumnSchemaGenerator
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator
Warisan
SqlDataReader
Warisan
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 System;
using System.Data;
using System.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 dataRecord)
    {
        Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
    }
}
Option Explicit On
Option Strict On

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub

    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

End Module

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.

VisibleFieldCount

Mendapatkan jumlah bidang dalam SqlDataReader bidang yang tidak disembunyikan.

Metode

Close()

SqlDataReader Menutup objek .

Close()

DbDataReader Menutup objek .

(Diperoleh dari DbDataReader)
CloseAsync()

Menutup objek secara DbDataReader asinkron.

(Diperoleh dari DbDataReader)
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)

Menyediakan cara membaca aliran baris khusus maju dari database SQL Server. Kelas ini tidak dapat diwariskan.

Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh DbDataReader dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari DbDataReader)
DisposeAsync()

Secara asinkron merilis semua sumber daya yang digunakan oleh instans DbDataReader kelas saat ini.

(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.

GetColumnSchema()

Mendapatkan koleksi skema kolom baca-saja.

GetColumnSchemaAsync(CancellationToken)

Ini adalah versi asinkron dari GetColumnSchema(DbDataReader). Penyedia harus mengambil alih dengan implementasi yang sesuai. cancellationToken secara opsional dapat dihormati. Implementasi default memanggil panggilan sinkron GetColumnSchema(DbDataReader) dan mengembalikan tugas yang selesai. Implementasi default akan mengembalikan tugas yang dibatalkan jika lulus yang sudah dibatalkan cancellationToken. Pengecualian yang dilemparkan GetColumnSchema(DbDataReader) akan dikomunikasikan melalui properti Pengecualian Tugas yang dikembalikan.

(Diperoleh dari DbDataReader)
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 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.

GetFieldValue<T>(Int32)

Mendapatkan nilai kolom yang ditentukan sebagai jenis yang diminta.

(Diperoleh dari DbDataReader)
GetFieldValueAsync<T>(Int32)

Secara asinkron mendapatkan nilai kolom yang ditentukan sebagai jenis yang diminta.

(Diperoleh dari DbDataReader)
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, CancellationToken)

Secara asinkron mendapatkan nilai kolom yang ditentukan sebagai jenis yang diminta.

(Diperoleh dari DbDataReader)
GetFloat(Int32)

Mendapatkan nilai kolom yang ditentukan sebagai angka titik floating 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 ordinal kolom, dengan nama kolom.

GetProviderSpecificFieldType(Int32)

Mendapatkan yang merupakan representasi dari jenis bidang khusus penyedia yang mendasar Object .

GetProviderSpecificValue(Int32)

Mendapatkan yang merupakan representasi dari nilai spesifik penyedia yang mendasar Object .

GetProviderSpecificValues(Object[])

Mendapatkan array objek yang merupakan representasi dari nilai spesifik penyedia yang mendasar.

GetSchemaTable()

Mengembalikan yang DataTable menjelaskan metadata kolom dari SqlDataReader.

GetSchemaTable()

Mengembalikan yang DataTable menjelaskan metadata kolom dari DbDataReader. Mengembalikan null jika perintah yang dijalankan tidak mengembalikan resultset, atau setelah NextResult() mengembalikan false.

(Diperoleh dari DbDataReader)
GetSchemaTableAsync(CancellationToken)

Ini adalah versi asinkron dari GetSchemaTable(). Penyedia harus mengambil alih dengan implementasi yang sesuai. cancellationToken secara opsional dapat dihormati. Implementasi default memanggil panggilan sinkron GetSchemaTable() dan mengembalikan tugas yang selesai. Implementasi default akan mengembalikan tugas yang dibatalkan jika lulus yang sudah dibatalkan cancellationToken. Pengecualian yang dilemparkan GetSchemaTable() akan dikomunikasikan melalui properti Pengecualian Tugas yang dikembalikan.

(Diperoleh dari DbDataReader)
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.

GetStream(Int32)

Mendapatkan aliran untuk mengambil data dari kolom yang ditentukan.

(Diperoleh dari DbDataReader)
GetString(Int32)

Mendapatkan nilai kolom yang ditentukan sebagai string.

GetTextReader(Int32)

Mengambil jenis data Char, NChar, NText, NVarChar, teks, varChar, dan Varian sebagai TextReader.

GetTextReader(Int32)

Mendapatkan pembaca teks untuk mengambil data dari kolom.

(Diperoleh dari DbDataReader)
GetTimeSpan(Int32)

Mengambil nilai kolom yang ditentukan sebagai TimeSpan objek.

GetType()

Mendapatkan instans Type 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 yang ada di SqlDataReader .

IsDBNull(Int32)

Mendapatkan nilai yang menunjukkan apakah kolom berisi nilai yang tidak ada atau hilang.

IsDBNullAsync(Int32)

Secara asinkron mendapatkan nilai yang menunjukkan apakah kolom berisi nilai yang tidak ada atau hilang.

(Diperoleh dari DbDataReader)
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.

IsDBNullAsync(Int32, CancellationToken)

Secara asinkron mendapatkan nilai yang menunjukkan apakah kolom berisi nilai yang tidak ada atau hilang.

(Diperoleh dari DbDataReader)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(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 , 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.

NextResultAsync(CancellationToken)

Secara asinkron memajukan pembaca ke hasil berikutnya saat membaca hasil batch pernyataan.

(Diperoleh dari DbDataReader)
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.

ReadAsync(CancellationToken)

Secara asinkron memajukan pembaca ke rekaman berikutnya dalam kumpulan hasil.

(Diperoleh dari DbDataReader)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

CanGetColumnSchema(DbDataReader)

Mendapatkan nilai yang menunjukkan apakah bisa DbDataReader mendapatkan skema kolom.

GetColumnSchema(DbDataReader)

Mendapatkan skema kolom (DbColumn koleksi) untuk DbDataReader.

Cast<TResult>(IEnumerable)

Mentransmisikan elemen dari IEnumerable ke jenis yang ditentukan.

OfType<TResult>(IEnumerable)

Memfilter elemen berdasarkan IEnumerable jenis tertentu.

AsParallel(IEnumerable)

Mengaktifkan paralelisasi kueri.

AsQueryable(IEnumerable)

Mengonversi menjadi IEnumerableIQueryable.

Berlaku untuk

Lihat juga