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#のシステムを連携したいときなど、とても便利ですので是非参考にしてください。

また、データの更新をしたい方は、こちらを参考にしてみてください。

 

C#の記事一覧

おすすめの記事