端くれプログラマの備忘録 C# [C#] OLE DBを使ってMS-Accessのデータベースを操作する

[C#] OLE DBを使ってMS-Accessのデータベースを操作する

Dapperを使いたかったんだけど、案件のターゲットがWindows XPということで使えない (Dapperは.NET 4.5ベースだけど、Windows XPは.NET 3.5までしかサポートしないため)。

[C#] Dapperを使ってMS-Accessのデータベースを操作する | プログラミング雑記
https://www.84kure.com/blog/?p=731

となると、OLE DBを使うのが王道か。

サンプルコード

単純な操作をする分には大したコード量にはならない。

using System.Data.OleDb;
 
try {
    string mdbFile = @"c:\temp\data.mdb";
    string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbFile;
    using (var conn = new OleDbConnection(connStr)) {
        conn.Open();
        OleDbCommand cmd = conn.CreateCommand();
 
        cmd.CommandText = "SELECT COUNT(*) FROM product WHERE genre = 1";
        int count = (int) cmd.ExecuteScalar();
        Console.WriteLine("Found {0} records", count);
 
        cmd.CommandText = "UPDATE product SET price = 100 where id = 123";
        count = cmd.ExecuteNonQuery();
        Console.WriteLine("Updated {0} records", count);
 
        cmd.Dispose();
        conn.Close();
    }
} catch (Exception ex) {
    Console.WriteLine(ex.Message);
}