データベース

[C#] DBのSELECT結果をDataTableで取得する

2022年4月27日

DBのSELECT結果を、DataTableで取得するサンプルです。

サンプル

例)DBのSELECT結果をDataTableで取得する

以下情報のSQLServerを対象としています。

  • サーバ名:192.168.1.1\test
  • DB名:db01
  • ユーザID:hoge
  • パスワード:pass
using System;
using System.Data.SqlClient;

// 接続情報
string constr = @"Data Source=192.168.1.1\test;User Id=hoge;Password=pass;Initial Catalog=db01";

try
{
  // コネクションを取得する
  using (var conn = new SqlConnection(constr))
  {
    // コネクションをオープンする
    conn.Open();
  
    // コマンドを取得する
    using (SqlCommand cmd = conn.CreateCommand())
    {
      // SQL文をセットする
      cmd.CommandText = @"SELECT * FROM test_table WHERE kbn = @kbn";

      // パラメータをセットする
      cmd.Parameters.Add("@kbn", SqlDbType.NChar, 1).Value = "1";

      //  SELECTしてDataTableに取り込む
      var dataAdapter = new SqlDataAdapter(cmd);
      DataTable dt = new DataTable();
      dataAdapter.Fill(dt);

      // DataTableからSELECT結果を取得してコンソールに出力する
      foreach(DataRow dr in dt.Rows)
      {
        var col1 = dr[0];  //1カラム目の値を取得する
        var col2 = dr[1];  //2カラム目の値を取得する
        var col3 = dr[2];  //3カラム目の値を取得する

        Console.WriteLine(col1 + "-" + col2 + "-" + col3);
      }
    }
  }

}
catch (SqlException ex)
{
  Console.WriteLine(ex);
}

備考

  • SELECT結果をDataTableで取得するには、System.Data.SqlClient.SqlDataAdapter#Fill を使用します。(上例だと27行目です。)
  • 5行目の接続情報は以下記事を参考に、お使いの環境に書き換えてください。
    [C#] DBコネクション接続文字列のパラメータ一覧

関連記事

-データベース
-