C#からAccessデータベースに接続し、データを取得する方法を紹介していきます。
SQLServerからデータを取得したい人はこちらを参考にしてみてください。
それでは、さっそく見ていきましょう。
接続文字列を作成する
Accessに接続するために必要な接続文字列を最初に作成しましょう。
下記画像のように、「プロジェクトを右クリック」→「プロパティ」をクリック→「設定」をクリックしてください。
この設定に接続文字列を作成していきます。
「名前」を任意で設定します。(今回は AccessCon としました。)
「種類」に接続文字列を選択しましょう。
「値」を設定するために、「...」をクリック
「値」の「...」をクリックすると、「接続のプロパティ」ダイアログが表示されます。
データソースがSQLServerになっているので、ここをAccessに変更していきます。
「変更」ボタンをクリックしてください。
「データソースの変更」ダイアログが表示されたら、
「Microsoft Accessデータベースファイル」を選択しましょう。
続いて、「接続のプロパティ」のダイアログが表示されます。
「データベースファイル名」に対象のAccessファイルを設定しましょう。
「データベースへのログオン」ログイン情報があれば設定してください。
今回はないので空白です。
「テスト接続」をクリックして、OKであれば、「OK」ボタンをクリックしましょう。
このように、設定に接続文字列の情報を追加されていれば、完了です。
ACCESSデータベースのデータ取得
接続文字列の作成が完了したので、Accessに接続してデータを取得していきます。
下記のようなデータベースを用意しています。
ファイル名:「hironimoDB」
テーブル名:「名前テーブル」
データ:3件作成しています。
C#からデータを取得するソース
using System;
using System.Data;
using System.Data.OleDb;
using System.Text;
using System.Windows.Forms;
namespace c_sharp
{
public partial class frmAccessCon : Form
{
public frmAccessCon()
{
InitializeComponent();
}
private void frmAccessCon_Load(object sender, EventArgs e)
{
//SQL作成
DataTable resultDt = new DataTable();
StringBuilder sql = new StringBuilder();
sql.AppendLine("SELECT");
sql.AppendLine(" *");
sql.AppendLine("FROM 名前テーブル");
//Access接続準備
OleDbCommand command = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
OleDbConnection cnAccess = new OleDbConnection();
cnAccess.ConnectionString = Properties.Settings.Default.AccessCon;
//Access接続開始
cnAccess.Open();
try
{
command.Connection = cnAccess;
command.CommandText = sql.ToString();
da.SelectCommand = command;
//SQL実行 結果をデータテーブルに格納
da.Fill(resultDt);
}
catch
{
throw;
}
finally
{
command.Dispose();
da.Dispose();
cnAccess.Close();
}
//結果出力
for(int rowindex=0; rowindex < resultDt.Rows.Count; rowindex++)
{
for (int colindex = 0; colindex < resultDt.Columns.Count; colindex++)
{
Console.Write(resultDt.Rows[rowindex][colindex] + " ");
}
Console.WriteLine();
}
}
}
}
3行目:OleDbをインポートしておきましょう。
19~23行目:データを取得するためのSQLを作成 今回は、名前テーブルの全件を取得しています。
26~28行目:「OleCommand」と「OleDbDataAdapter」と「OleDbConnection」の3つの変数を宣言
29行目:先ほど作成した接続文字列を設定しています。(Properties.Settings.Default.AccessCon)
32行目:Accessのデータベースに接続
36~38行目:OleDBCommandとOleDbDataAdapterを設定
41行目:SQLの実行結果を、データテーブルに格納
55~62行目:結果の書き出し
結果
1 伊藤 きりん 150
2 田中 ぞう 180
3 鈴木 ねずみ 120
Accessの情報が取得できていることを確認することができました。
まとめ
今回は、ACCESSのデータベースのデータを取得する方法を紹介しました。
Accessで作ったシステムとC#のシステムを連携したいときなど、とても便利ですので是非参考にしてください。
また、データの更新をしたい方は、こちらを参考にしてみてください。