昨日に引き続き?C#の話し。
未だに、Accessを使ったツールやシステムがあって、個人的にはもうやめようよと思いながら、データを取得するサンプルをやってみました。
(今では他にも素晴らしいDBがありますからね。)
ダウンロードボタンをクリックします。
ダウンロードした「AccessDatabaseEngine.exe」または「AccessDatabaseEngine_X64.exe」を実行します。
インストールウィザード画面が表示されるので「次へ」ボタンをクリックします。
使用許諾契約同意画面が表示されるので、「同意します」にチェックをして「次へ」ボタンをクリックします。
インストール先指定画面が表示されるので、特に指定がなければそのまま「インストール」ボタンをクリックします。
インストール中。しばしお待ちを。
完了画面が表示されるので「OK」ボタンをクリックします。
VisualStudio2017で新しく WindowsForm プロジェクトを作成します。
今回は「SampleAccessDatabase」としました。
いつもサンプルで使っている、猫のデータをサンプルで使用します。
Access Database は、Windows画面上で右クリック>「新規作成」>「Microsoft Access Database」より、手動で作成してください。
列の定義は次の通り。
MSTKIND
区分コード
区分名
TBLCAT
番号
名前
性別
年齢
種別
好物
MSTKIND
区分コード
区分名
01
キジトラ
02
長毛種(不明
03
ミケ(っぽい
04
サビ
09
その他
TBLCAT
No
名前
性別
年齢
区分コード
好物
1
そら
♂
6
01
犬の人形
2
りく
♂
5
02
人間
3
うみ
♀
4
03
高級ウェットフード
4
こうめ
♀
2
04
横取りフード
フォームにデータグリッドビューのみを配置したシンプルな画面を作成します。
起動時にデータを取得して表示するようにします。
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.Odbc;
namespace SampleAccessDatabase
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// DataGridViewの設定
dataGridView1.AutoGenerateColumns = false;
dataGridView1.Columns.Add("No", "No");
dataGridView1.Columns.Add("Name", "名前");
dataGridView1.Columns.Add("Sex", "性別");
dataGridView1.Columns.Add("Age", "年齢");
dataGridView1.Columns.Add("KbnCd", "種別");
dataGridView1.Columns.Add("Favorite", "好物");
dataGridView1.Columns[0].DataPropertyName = "No";
dataGridView1.Columns[1].DataPropertyName = "Name";
dataGridView1.Columns[2].DataPropertyName = "Sex";
dataGridView1.Columns[3].DataPropertyName = "Age";
dataGridView1.Columns[4].DataPropertyName = "KbnCd";
dataGridView1.Columns[5].DataPropertyName = "Favorite";
dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.Automatic;
// データ取得
DataTable dt = new DataTable();
string connectionString = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:\Sample.accdb; Uid=; Pwd =; ";
using (OdbcConnection con = new OdbcConnection(connectionString))
{
con.Open();
string sql = "SELECT * FROM TBLCAT";
using (OdbcCommand cmd = new OdbcCommand(sql, con))
{
using (OdbcDataAdapter adapter = new OdbcDataAdapter(cmd))
{
adapter.Fill(dt);
}
}
}
dataGridView1.DataSource = dt;
}
}
}
無事にデータが表示されました。
データベースへの接続をいくつか記事に書いてきましたが、
Accessはバージョンや32bit、64bitと気を付けなければならないことが多く、
ちょっと面倒な感じです。
とはいえ、(ひと)昔前のシステムや、簡単なツールなんかでよく利用されているため
それなりに需要はあるんだろうなとは思いつつ、何かのお役に立てれば。
ではでは。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント