IsDBNullAsync(int, CancellationToken)

このメソッドは、タスクベースの非同期バージョンのOracleDataReader.IsDBNull(int32)を返します。

宣言

// C#
public override Task<bool> IsDBNullAsync(int index, CancellationToken cancellationToken);

パラメータ

  • index - ゼロを基準とした列索引

  • cancellationToken - コマンドのタイムアウトが発生する前にタスクを取り消すためにアプリケーションによって使用可能な入力取消しトークン

戻り値

問合せ実行の期間全体にわたりコール元のスレッドをブロックすることがない、即座に非同期処理を表すTask<bool>オブジェクト

実装

DbDataReader

例外

InvalidOperationException - リーダーがクローズされているか、Read()が呼び出されていないか、またはすべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

using Oracle.ManagedDataAccess.Client;
using System;
using System.Data;
using System.Threading;

namespace AsyncApp
{
  class AsyncDemo
  {
    static async Task Main()
    {
      string connectionString = "User Id=HR; Password=<PASSWORD>; Data Source=oracle;";
      OracleConnection oc = new OracleConnection(connectionString);
      await oc.OpenAsync(CancellationToken.None);

      OracleCommand cmd = oc.CreateCommand();
      cmd.CommandText = "select * from demo_table";

      OracleDataReader reader;

      reader = await cmd.ExecuteReaderAsync();
      while (await reader.ReadAsync(CancellationToken.None))
      {
        if(!(await reader.IsDBNullAsync(0)))
        Console.WriteLine(reader.GetValue(0));
      }
    }
  }
}