次の方法で共有


DataReaderExtensions.IsDBNullAsync メソッド

定義

列に格納されている値が存在しない値または欠損値かどうかを示す値を非同期で取得します。

public static System.Threading.Tasks.Task<bool> IsDBNullAsync (this System.Data.Common.DbDataReader reader, string name, System.Threading.CancellationToken cancellationToken = default);
static member IsDBNullAsync : System.Data.Common.DbDataReader * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
<Extension()>
Public Function IsDBNullAsync (reader As DbDataReader, name As String, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Boolean)

パラメーター

reader
DbDataReader

列値の取得元となるデータ リーダー。

name
String

列の名前。

cancellationToken
CancellationToken

非同期操作を取り消すオプションのトークン。

戻り値

指定された列値が DBNull に等しい場合は、Result プロパティが true になり、等しくない場合は false になる Task<TResult>

例外

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

- または -

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

- または -

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

- または -

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

- または -

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

指定された名前は、有効な列名ではありません。

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

注釈

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

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

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

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

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

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

このメソッドは、メソッドの同期的な例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクの待機時にスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって IsDBNull(DbDataReader, String)スローされる例外に関するページを参照してください。

適用対象