ここでは、Npgsql で select 文を発行して結果を取得するサンプルコードを掲載しています。結果を取得しない delete 文などのサンプルは 「 トランザクションの管理 ( コミットとロールバック ) 」 を参照ください。
スポンサーリンク
SELECT 文の発行と結果の読み込み
Npgsql で select 文を発行して、その結果を取得するサンプルコードになります。詳細はサンプル内のコメントも参照ください。
C#
//using Npgsql; //using System.Data; // データベース接続文字列 string conStr = @"Server=localhost;Port=5432;User Id=postgres;Password=password;Database=dbname"; // データベースに接続 NpgsqlConnection conn = new NpgsqlConnection(conStr); conn.Open(); // 発行するselect文 string sql = @"select col1, col2, col3 from table1 order by col1"; NpgsqlCommand cmd = new NpgsqlCommand(sql, conn); // クエリ実行 using (NpgsqlDataReader dr = cmd.ExecuteReader()) { // レコードなし if (dr.HasRows == false) { // この処理はなくてもOK } while (dr.Read()) { // NULL の場合は、初期値を設定するようにする // データベースの型に合わせて格納する変数の型も変更する string col1 = (dr["col1"] == DBNull.Value) ? String.Empty : (string)dr["col1"]; DateTime col2 = (dr["col2"] == DBNull.Value) ? DateTime.MinValue : (DateTime)dr["col2"]; int col3 = (dr["col3"] == DBNull.Value) ? 0 : (int)dr["col3"]; // 取得したデータを云々・・の処理など } /* * ポイント *----------------------------------------------------------------------- * using などで、ちゃんと DataReader をクローズしておかないと不具合の原因になる * 手動でクローズする場合は、dr.Close(); */ } // データベースから切断 conn.Close();