次の方法で共有


DbDataReader.IsDBNullAsync メソッド

定義

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

オーバーロード

IsDBNullAsync(Int32)

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

IsDBNullAsync(Int32, CancellationToken)

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

IsDBNullAsync(Int32)

ソース:
DbDataReader.cs
ソース:
DbDataReader.cs
ソース:
DbDataReader.cs

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

public:
 System::Threading::Tasks::Task<bool> ^ IsDBNullAsync(int ordinal);
public System.Threading.Tasks.Task<bool> IsDBNullAsync (int ordinal);
member this.IsDBNullAsync : int -> System.Threading.Tasks.Task<bool>
Public Function IsDBNullAsync (ordinal As Integer) As Task(Of Boolean)

パラメーター

ordinal
Int32

取得する、0 から始まる列。

戻り値

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

例外

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

- または -

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

- または -

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

- または -

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

- または -

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

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

注釈

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

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

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

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

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

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

適用対象

IsDBNullAsync(Int32, CancellationToken)

ソース:
DbDataReader.cs
ソース:
DbDataReader.cs
ソース:
DbDataReader.cs

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

public:
 virtual System::Threading::Tasks::Task<bool> ^ IsDBNullAsync(int ordinal, System::Threading::CancellationToken cancellationToken);
public virtual System.Threading.Tasks.Task<bool> IsDBNullAsync (int ordinal, System.Threading.CancellationToken cancellationToken);
abstract member IsDBNullAsync : int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
override this.IsDBNullAsync : int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Overridable Function IsDBNullAsync (ordinal As Integer, cancellationToken As CancellationToken) As Task(Of Boolean)

パラメーター

ordinal
Int32

取得する、0 から始まる列。

cancellationToken
CancellationToken

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

戻り値

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

例外

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

- または -

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

- または -

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

- または -

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

- または -

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

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

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

注釈

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

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

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

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

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

返されたタスクが完了していないうちは、DbDataReader のオブジェクトの他のメソッドとプロパティを呼び出さないでください。 このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって IsDBNull(Int32)スローされる例外に関するページを参照してください。

適用対象