次の方法で共有


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 ストリーミング サポート」を参照してください。

適用対象