C#とADO.NETによるデータベース接続方法

10.3.1 Microsoft Accessへの接続


Microsoft Accessデータベースに接続するためのC#コード構成は以下の通りです:

  1. 環境設定: Microsoft Access Database Engineをインストールし、必要なライブラリが正しく参照されていることを確認。
  2. 接続確立: OleDbConnectionクラスを使用して接続文字列を定義します。例:
  3. string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\db.accdb;";
    
  4. データ取得: OleDbCommandOleDbDataReaderを用いてクエリ実行:
  5. using (var dbConn = new OleDbConnection(connStr)) {
        dbConn.Open();
        var cmd = new OleDbCommand("SELECT * FROM TableName", dbConn);
        using (var reader = cmd.ExecuteReader()) {
            while (reader.Read()) {
                for (int i = 0; i < reader.FieldCount; i++) {
                    Console.Write(reader[i] + "\t");
                }
            }
        }
    }
    
  6. データ挿入: パラメータ付きSQL文でレコード追加:
  7. var insertCmd = new OleDbCommand(
        "INSERT INTO TableName (Col1, Col2) VALUES (@Val1, @Val2)", dbConn);
    insertCmd.Parameters.AddWithValue("@Val1", "Sample1");
    insertCmd.Parameters.AddWithValue("@Val2", "Sample2");
    insertCmd.ExecuteNonQuery();
    

10.3.2 Accessデータベース接続サンプル


次のステップでbook.accdbに接続するアプリケーションを作成:

  1. 準備:
    • Access Database Engineのインストール
    • book.accdbデータベース作成(Booksテーブル:ID, Title, Author)
  2. プロジェクト構築:
    • Visual Studioでコンソールアプリケーション作成
    • System.Data参照追加
  3. コード実装:
  4. using System;
    using System.Data.OleDb;
    
    namespace AccessExample {
        class Program {
            static void Main() {
                string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\book.accdb;";
                using (var dbConn = new OleDbConnection(connStr)) {
                    try {
                        dbConn.Open();
                        Console.WriteLine("接続成功");
                        var countCmd = new OleDbCommand("SELECT COUNT(*) FROM Books", dbConn);
                        int recordCount = (int)countCmd.ExecuteScalar();
                        Console.WriteLine($"Books表の件数: {recordCount}");
                    } catch (Exception ex) {
                        Console.WriteLine($"接続失敗: {ex.Message}");
                    } finally {
                        dbConn.Close();
                    }
                }
                Console.WriteLine("Enterキーで終了...");
                Console.ReadKey();
            }
        }
    }
    

10.3.3 データ操作処理


OleDbCommandオブジェクトの使用方法:

  1. オブジェクト生成:
  2. OleDbConnection dbConn = new OleDbConnection(connStr);
    OleDbCommand cmd = new OleDbCommand("SQLクエリ", dbConn);
    
  3. プロパティ設定:
  4. cmd.CommandText = "UPDATE Table SET Field = @Val WHERE ID = @Id";
    cmd.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@Val", "NewValue");
    
  5. 実行方法:
  6. メソッド用途
    ExecuteNonQuery更新/削除操作DELETE FROM Table WHERE ID = 1
    ExecuteReaderレコード読み取りSELECT * FROM Table
    ExecuteScalar単一値取得SELECT COUNT(*) FROM Table

タグ: C# ado.net OLEDB Microsoft Access データベース接続

9月12日 14:17 投稿