Share via


DataReaderExtensions.GetFieldValueAsync<T> Metode

Definisi

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

public static System.Threading.Tasks.Task<T> GetFieldValueAsync<T> (this System.Data.Common.DbDataReader reader, string name, System.Threading.CancellationToken cancellationToken = default);
static member GetFieldValueAsync : System.Data.Common.DbDataReader * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
<Extension()>
Public Function GetFieldValueAsync(Of T) (reader As DbDataReader, name As String, Optional cancellationToken As CancellationToken = Nothing) As Task(Of T)

Jenis parameter

T

Jenis nilai yang akan dikembalikan.

Parameter

reader
DbDataReader

Pembaca data untuk mendapatkan nilai kolom.

name
String

Nama kolom.

cancellationToken
CancellationToken

Token opsional untuk membatalkan operasi asinkron.

Mengembalikan

Task<T>

Tugas yang Result berisi nilai kolom yang ditentukan.

Pengecualian

Koneksi terputus atau ditutup selama pengambilan data.

-atau-

Pembaca data ditutup selama pengambilan data.

-atau-

Tidak ada data yang siap dibaca (misalnya, yang pertama Read() belum dipanggil, atau dikembalikan false).

-atau-

Mencoba membaca kolom yang dibaca sebelumnya dalam mode berurutan.

-atau-

Ada operasi asinkron yang sedang berlangsung. Ini berlaku untuk semua metode Get_*_ saat berjalan dalam mode berurutan, karena dapat dipanggil saat membaca aliran.

Nama yang ditentukan bukan nama kolom yang valid.

Nilai yang dikembalikan oleh database tidak cocok atau tidak dapat ditransmisikan ke T.

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Keterangan

Metode asinkron ini hanya diperlukan untuk menghindari pemblokiran utas panggilan ketika pembaca dibuat dalam mode berurutan.

Jika mode berurutan tidak ditentukan, semua nilai kolom harus tersedia dalam memori setiap kali ReadAsync selesai, dan memanggil versi sinkron metode tidak boleh memblokir utas panggilan.

Implementasi default metode asinkron ini memanggil rekan sinkronnya dan mengembalikan Tugas yang telah selesai, yang berpotensi memblokir utas panggilan. Implementasi default juga mengembalikan tugas yang dibatalkan jika melewati token pembatalan yang sudah dibatalkan.

Penyedia data yang mendukung pemrograman asinkron harus mengambil alih inmplementasi default menggunakan operasi I/O asinkron.

Metode ini menerima token pembatalan yang dapat digunakan untuk meminta operasi dibatalkan lebih awal. Implementasi dapat mengabaikan permintaan ini.

Metode dan properti lain dari objek DbDataReader tidak boleh dipanggil saat Tugas yang dikembalikan belum selesai.

Berlaku untuk