C#でアクセス(mdb)ファイルをdataGridViewに読み込む


無料のC#2008expressを使って,アクセスがなくともアクセスのmdbファイルを読み込むアプリを作成する。
mdb内の一つのテーブルをデータグリッドビューに表示するものなので,コーディングなしで作成できる。
もちろん,クエリを用いて複数のテーブルを関連づけて,必要なデータを表示するアプリも作れるが以下では説明しない。
C#のコンパイルなど最低限の作業は知っているものとし説明しない。

●ファイルメニューの「新しいプロジェクト」から,「windowsフォームアプリケーション」を選択する(プロジェクト名つける)。
●次に,以下の手順でフォームにいろいろ部品をつける。

●1●
ツールボックスから,menuStripをドロップダウンし,ストリップ上で右クリックして「標準項目の挿入」をする。
もっとも,このmenuStripと次のstatusStripは,今回は使わない。飾りみたいなもの(?)

●2●
statusStripをドロップダウンし,最下段にストリップをつけておく
dataGridView(以下DGVと省略)を操作するため,bindingNavigatorをドロップする。
toolStripContainerをドロップして,「親コンテナにドッキングする」を選択

●3●
dataGridViewをドロップする
左上の矢印をクリックし,「プロジェクトデータソースの追加」をクリックする

●4●
DGVに表示するデータの設定をする。ここでアクセスのmdbファイルと関連させるのである。
とは言っても,ウィザードに従って設定していくと,自動的にできるようになっている。
データソースの選択,プロジェクトデータソースの追加,データベースの種類を選択,データベースを選択

●5●
新しい接続,データソースを変更,accessデータベースファイル,DBファイル名を設定

●6●
アクセスファイルに接続できるように設定

●7●
mdbファイルを設定する

●8●
mdbファイルには複数のテーブルが入っているが,DGVには一つのテーブルしか表示できない。
mdbファイルからDGVに表示するテーブル・項目を選択する

●9●
ここまでの作業で,テーブルを表示できるようになった。
実用的には,検索抽出ができるようにする必要がある。
tableAdapterの設定で,検索できるようにする。

●10●
検索条件ビルダを用いて,SQLを設定する

●11●
クエリビルダで検索クエリをつくる

●12●
おおむねできあがり
bindingNavigatorのプロパティで,bindingSourceを設定するのを忘れないように

●13●
ここまで,全くコーディングをせずに,mdbファイルを表示し検索もできるようにした。

●14●
もっとも,このままでは,年月日の表示が西暦なので,元号表示にするには,コードを追加する必要がある

            CultureInfo myCI = new CultureInfo("ja-JP", false);
            CultureInfo myCIclone = (CultureInfo)myCI.Clone();
            myCIclone.DateTimeFormat.Calendar = new JapaneseCalendar();
            Application.CurrentCulture = myCIclone;
            myCIclone.DateTimeFormat.LongDatePattern = "gg yy'年'MM'月'dd'日'";
            dataGridView1.Columns[2].Width = 120;
            dataGridView1.Columns[3].Width = 120;
            dataGridView1.Columns[4].Width = 180;
            dataGridView1.Columns[2].DefaultCellStyle.Format = myCIclone.DateTimeFormat.LongDatePattern;
            dataGridView1.Columns[3].DefaultCellStyle.Format = myCIclone.DateTimeFormat.LongDatePattern;
            dataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

●15●
次にdataGridViewに変更や追加をした場合に保存する方法
変更が加わったテーブルを変更して保存すると考えれば良い。
特にmdbファイルを保存するとか考える必要はない。
どこかのボタンのクリックイベントなどに,次の一行を書くと保存できる。

        this.トンネル工事tableAdapter.Update(トンネル工事DataSet.トンネル工事);
inserted by FC2 system