SqlDataReader.GetFieldValueAsync<T>(Int32, CancellationToken) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定された列の値を型として非同期的に取得します。 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) と同じにします。 返されたタスクを取り消し済みとしてマークする必要があります。
戻り値
返された型オブジェクト。
例外
データの取得中、接続は破棄されるか、または閉じられます。
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 ストリーミング サポート」を参照してください。
適用対象
.NET