DbDataReader.GetFieldValueAsync メソッド

定義

要求された型として指定された列の値を非同期で取得します。

オーバーロード

GetFieldValueAsync<T>(Int32)

要求された型として指定された列の値を非同期で取得します。

GetFieldValueAsync<T>(Int32, CancellationToken)

要求された型として指定された列の値を非同期で取得します。

GetFieldValueAsync<T>(Int32)

要求された型として指定された列の値を非同期で取得します。

public:
generic <typename T>
 System::Threading::Tasks::Task<T> ^ GetFieldValueAsync(int ordinal);
public System.Threading.Tasks.Task<T> GetFieldValueAsync<T> (int ordinal);
member this.GetFieldValueAsync : int -> System.Threading.Tasks.Task<'T>
Public Function GetFieldValueAsync(Of T) (ordinal As Integer) As Task(Of T)

型パラメーター

T

返される値の型。

パラメーター

ordinal
Int32

0 から始まる列序数。

戻り値

Task<T>

指定された列の値を Result に格納しているタスク。

例外

データの取得中、接続が切断されたか、閉じられました。

- または -

データの取得中、データ リーダーが閉じられました。

- または -

読み取ることのできるデータはありません (たとえば、最初の Read() は呼び出されなかったか、false を返しました)。

- または -

以前に読み取られた列をシーケンシャル モードで読み取ろうとしました。

- または -

非同期操作が進行中でした。 シーケンシャル モードで実行中、これはすべての Get_*_ メソッドに適用されます。ストリームの読み取り中に呼び出すことができるためです。

列インデックスが範囲外です。

データベースによって返された値が一致しないか、T にキャストできません。

注釈

この非同期メソッドは、リーダーがシーケンシャル モードで作成されるときに呼び出し元のスレッドがブロックされないようにするためにのみ必要です。

シーケンシャル モードが指定されていない場合は、ReadAsync が完了するたびにすべての列値がメモリ内で使用できるようになります。また、メソッドの同期バージョンを呼び出しても、呼び出し元のスレッドはブロックされません。

この非同期メソッドの既定の実装では、対応する同期メソッドが呼び出され、完了した Task が返され、呼び出し元のスレッドがブロックされる可能性があります。

非同期プログラミングをサポートするデータ プロバイダーは、非同期 I/O 操作を使用して既定の実装をオーバーライドする必要があります。

返されたタスクが完了していないうちは、DbDataReader のオブジェクトの他のメソッドとプロパティを呼び出さないでください。

適用対象

GetFieldValueAsync<T>(Int32, CancellationToken)

要求された型として指定された列の値を非同期で取得します。

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

型パラメーター

T

返される値の型。

パラメーター

ordinal
Int32

0 から始まる列序数。

cancellationToken
CancellationToken

非同期操作を取り消すトークン。

戻り値

Task<T>

指定された列の値を Result に格納しているタスク。

例外

データの取得中、接続が切断されたか、閉じられました。

- または -

データの取得中、データ リーダーが閉じられました。

- または -

読み取ることのできるデータはありません (たとえば、最初の Read() は呼び出されなかったか、false を返しました)。

- または -

以前に読み取られた列をシーケンシャル モードで読み取ろうとしました。

- または -

非同期操作が進行中でした。 シーケンシャル モードで実行中、これはすべての Get_*_ メソッドに適用されます。ストリームの読み取り中に呼び出すことができるためです。

列インデックスが範囲外です。

データベースによって返された値が一致しないか、T にキャストできません。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

注釈

この非同期メソッドは、リーダーがシーケンシャル モードで作成されるときに呼び出し元のスレッドがブロックされないようにするためにのみ必要です。

シーケンシャル モードが指定されていない場合は、ReadAsync が完了するたびにすべての列値がメモリ内で使用できるようになります。また、メソッドの同期バージョンを呼び出しても、呼び出し元のスレッドはブロックされません。

この非同期メソッドの既定の実装では、対応する同期メソッドが呼び出され、完了した Task が返され、呼び出し元のスレッドがブロックされる可能性があります。 既定の実装では、既に取り消されたキャンセル トークンが渡された場合、取り消されたタスクも返されます。

非同期プログラミングをサポートするデータ プロバイダーは、非同期 I/O 操作を使用して既定の実装をオーバーライドする必要があります。

このメソッドは、早期に操作をキャンセルすることを要求するために使用できるキャンセル トークンを受け取ります。 実装は、この要求を無視する場合があります。

返されたタスクが完了していないうちは、DbDataReader のオブジェクトの他のメソッドとプロパティを呼び出さないでください。

適用対象