共用方式為


SqlDataReader.GetFieldValueAsync<T>(Int32, CancellationToken) 方法

定義

非同步取得指定之資料行的值做為型別。 GetFieldValue<T>(Int32) 是這個方法的同步版本。

public:
generic <typename T>
 override System::Threading::Tasks::Task<T> ^ GetFieldValueAsync(int i, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<T> GetFieldValueAsync<T> (int i, System.Threading.CancellationToken cancellationToken);
override this.GetFieldValueAsync : int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
Public Overrides Function GetFieldValueAsync(Of T) (i As Integer, cancellationToken As CancellationToken) As Task(Of T)

類型參數

T

要傳回的值型别。

參數

i
Int32

要擷取的資料行。

cancellationToken
CancellationToken

取消指令,其會傳播說明應該取消作業的通知。 這並不保證取消。 如果設定為 CancellationToken.None,就會使這個方法相當於 IsDBNull(Int32)。 傳回的工作必須標記為已取消。

傳回

Task<T>

傳回的型別物件。

例外狀況

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

SqlDataReader在資料擷取期間已關閉。

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

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

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

在連接字串中指定了 Context Connection=true

嘗試讀取不存在的資料行。

資料行的值是 null (IsDBNull(Int32) == true),擷取非 SQL 型別。

T 不符合 SQL Server 傳回的類型或無法轉換。

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

備註

T 可以是下列其中一種類型:

布林值 Byte Char Datetime
DateTimeOffset Decimal Double Float
Guid Int16 Int32 Int64
SqlBoolean SqlByte SqlDateTime SqlDecimal
SqlDouble SqlGuid SqlInt16 SqlInt32
SqlInt64 SqlMoney SqlSingle SqlString
String UDT,可以是標示 SqlUserDefinedTypeAttribute為 的任何 CLR 類型。

如需詳細資訊,請參閱 SqlClient 串流支援

適用於