10.3.1 Microsoft Accessへの接続
Microsoft Accessデータベースに接続するためのC#コード構成は以下の通りです:
- 環境設定: Microsoft Access Database Engineをインストールし、必要なライブラリが正しく参照されていることを確認。
- 接続確立:
OleDbConnectionクラスを使用して接続文字列を定義します。例: - データ取得:
OleDbCommandとOleDbDataReaderを用いてクエリ実行: - データ挿入: パラメータ付きSQL文でレコード追加:
string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\db.accdb;";
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");
}
}
}
}
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に接続するアプリケーションを作成:
- 準備:
- Access Database Engineのインストール
- book.accdbデータベース作成(Booksテーブル:ID, Title, Author)
- プロジェクト構築:
- Visual Studioでコンソールアプリケーション作成
- System.Data参照追加
- コード実装:
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オブジェクトの使用方法:
- オブジェクト生成:
- プロパティ設定:
- 実行方法:
OleDbConnection dbConn = new OleDbConnection(connStr);
OleDbCommand cmd = new OleDbCommand("SQLクエリ", dbConn);
cmd.CommandText = "UPDATE Table SET Field = @Val WHERE ID = @Id";
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Val", "NewValue");
| メソッド | 用途 | 例 |
|---|---|---|
| ExecuteNonQuery | 更新/削除操作 | DELETE FROM Table WHERE ID = 1 |
| ExecuteReader | レコード読み取り | SELECT * FROM Table |
| ExecuteScalar | 単一値取得 | SELECT COUNT(*) FROM Table |