AccessのデータはC#から取得して扱うことが可能です。
ODBC接続とOLEDB接続がありますが、本記事ではODBC接続での方法を記載します。
【検証環境】VisualStudio2019 / .NET Core3.1 / Access ver.2109 64bit
Accessのテーブル準備
Accessにテーブルを準備します。例の如く、Personテーブルを作成します。
ファイルパス「D:TESTDatabase1.accdb 」
OdbcDataAdapter
Accessからデータ取得する方法の一つとして、DataAdapterを利用する方法があります。
DataAdapterは渡したSQLの結果をDataTableに格納することができます。
//接続文字列
string connectionString = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:TESTDatabase1.accdb;";
var dataTable = new DataTable();
try
{
using (var connection = new OdbcConnection(connectionString))
{
connection.Open();
var sql = "SELECT * FROM T_Person WHERE 年齢 >= 25";
using (var commnad = new OdbcCommand(sql, connection))
{
using (var adapter = new OdbcDataAdapter(commnad))
{
adapter.Fill(dataTable);
}
}
}
//DataTableはforeachできないので、AsEnumerableを使う
foreach (var row in dataTable.AsEnumerable())
{
//DataRow["列名"]で値を取得
var name = row["名前"];
var age = row["年齢"];
var bloodType = row["血液型"];
Console.WriteLine($"{name} {age}歳 {bloodType}型");
//本田翼 28歳 O型
//戸田恵梨香 32歳 AB型
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
OdbcDataReader
Accessからデータ取得する方法の一つとして、DataReaderを利用する方法があります。
DataReader は渡したSQLの結果を1行ずつ読み込んで処理することができます。
//接続文字列
string connectionString = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:TESTDatabase1.accdb;";
var dataTable = new DataTable();
try
{
using (var connection = new OdbcConnection(connectionString))
{
connection.Open();
var sql = "SELECT * FROM T_Person WHERE 年齢 >= 25";
using (var commnad = new OdbcCommand(sql, connection))
{
using (var reader = commnad.ExecuteReader())
{
//1行ずつ読み込む
while (reader.Read())
{
//OdbcDataReader["列名"]で値を取得
var name = reader["名前"];
var age = reader["年齢"];
var bloodType = reader["血液型"];
Console.WriteLine($"{name} {age}歳 {bloodType}型");
//本田翼 28歳 O型
//戸田恵梨香 32歳 AB型
}
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}