DataReaderExtensions.GetFieldValueAsync<T> 方法

定義

以非同步方式取得所指定資料行的值作為要求類型。

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)

類型參數

T

要傳回的值型别。

參數

reader
DbDataReader

要從中取得資料行值的資料讀取器。

name
String

資料行名稱。

cancellationToken
CancellationToken

取消非同步作業的選擇性語彙基元。

傳回

Task<T>

Result 包含所指定資料行值的工作。

例外狀況

連線在資料擷取期間已中斷或關閉。

-或-

資料讀取器在資料擷取期間已關閉。

-或-

沒有可供讀取的資料 (例如,沒有呼叫第一個 Read(),或傳回 false)。

-或-

嘗試在循序模式下讀取先前讀取的資料行。

-或-

有進行中的非同步作業。 當在循序模式中執行時,此適用於所有 Get_*_ 方法,因為在讀取資料流時可能會呼叫它們。

指定的名稱不是有效的資料行名稱。

資料來源傳回的值不符合或無法轉換成 T

取消令牌已取消。 此例外狀況會儲存在傳回的工作中。

備註

只有在以循序模式建立讀取器時,才需要這個異步方法,以避免封鎖呼叫線程。

如果未指定循序模式,則每次 ReadAsync 完成時,所有數據行值都應該在記憶體中變成可用,而且呼叫 方法的同步版本不應該封鎖呼叫線程。

這個異步方法的預設實作會叫用其同步對應專案,並傳回已完成的工作,可能會封鎖呼叫線程。 如果傳遞已取消的取消令牌,默認實作也會傳回已取消的工作。

支援 異步程式設計 的數據提供者應該使用異步 I/O 作業覆寫預設的實作。

這個方法會接受可以用來要求提早取消作業的取消語彙基元。 實作可以忽略這項要求。

傳回的工作尚未完成時,不應該叫用 DbDataReader 物件的其他方法和屬性。

適用於