C#でAccessデータベースを操作する「準備編」、「接続編」と、
書いてきたが、ここで、C#アプリ作成編へと移ろう。
今回は、例ということで、
簡単なアプリを例に紹介しよう。
新しいプロジェクトの作成で、「Windows フォーム アプリケーション」を選択する。
プロジェクト名は、任意でOK!!
この設定でプロジェクトを作成すると、
Form1というダイアログが表示されるだけのアプリをビルドするだけで作成できる。
今回は、Accessの操作が目的なので、これをベースに作ってみよう。
1)
ソリューションエクスプローラが右側に表示されていると思うが、
これの中から、Form1.csをダブルクリックで開く。
これで、Form1.csのデザインが開く。
2)
これでは、ダイアログが立ち上がるだけなので、
操作した際に、プログラムを実行する為に、
ボタンをつける。
左に縦長のツールボックスがあるので、これをクリックすれば、
ツールボックスが飛び出してくるので、Buttonを選択して、
ダイアログの配置したい位置にドラッグアンドドロップする。
これで、ダイアログにボタンをつけることができた。
3)
下準備が終わったところで、次の段階へ。
ここまでは、Visual C#が勝手にコードを生成してくれていたが、
Accessの操作は、自分でコードを書かなくてはならない。
今回は、DBClass1.cs というソースを作成した。
「DBClass1.cs」について解説しよう。
今回のソースファイルの担う役割は、
(データベースを開く)
(データベースにデータを挿入する)
(データベースを閉じる)
この3点!!
このほかに、実装するとすれば、「更新」、「削除」など、
その他、SQLで操作できる機能を実装すれば良いだろう。
サンプルコードは、下記のような感じ。
ビルド実行して、動いたことを確認済み。
DBClass1.csの中身 |
using System;
using System.Windows.Forms;
using System.Data.OleDb;
namespace DBAccess
{
public class DBClass1
{
public OleDbConnection dbConnect;
public OleDbCommand dbCommand;
public OleDbDataAdapter dbAdapter;
//ここは、実行ファイルexeの存在するところからの相対パスで書いておく。
public string connectString = @”Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=..\\..\..\..\db1.mdb”;
//DB接続
public bool DB_Connection()
{
try {
//コネクション作成
dbConnect = new OleDbConnection(connectString);
//コネクションを開く
dbConnect.Open();
} catch (Exception e) {
//とりあえず、メッセージボックスで情報表示
MessageBox.Show(”Error:” + e.Message);
return false;
}
return true;
}
//DB挿入
public bool DB_Insert()
{
//Access SQL文:アスミスにした理由は、
//たまたま見ていたアニメのシーンで喋っていたから(w
String insertSQL = “Insert Into VoiceActor(主キー,声優名,ニックネーム)
Values(19830812,\”阿澄佳奈\”,\”アスミス\”)”;
try {
//DB操作コマンドの作成
dbCommand = new OleDbCommand(insertSQL, dbConnect);
//SQLの実行、今回は、「INSERT」
if (dbCommand.ExecuteNonQuery() == 1) {
//特に処理しなかった
} else {
MessageBox.Show(”False”);
}
} catch (Exception e) {
MessageBox.Show(”Error:” + e.Message);
}
return true;
}
//DBクローズ
public bool DB_Close()
{
try {
//コネクションを閉じる
dbConnect.Close();
} catch (Exception e) {
MessageBox.Show(”Error:” + e.Message);
return false;
}
return true;
}
}
}
|
これで、簡単なデータベース操作機能が実装できる。
4)
Form1.cs (デザイン)に戻って、
作成したButton1をダブルクリックする。
これで、ボタンをクリックした際の動作を記述する箇所に
飛べるので、3)で実装したクラスを利用しよう。
これで、コードを書いてみると、このようになる。
Form1.csの中身
|
using System;
using System.Windows.Forms;
//これが、ACCESS DBアクセス用クラス
using DBAccess;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private DBClass1 m_DBClass1 = null;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//ボタンが押されたら、Accessに接続して、目的のデータを追加する。
m_DBClass1 = new DBClass1();
if (m_DBClass1.DB_Connection() == true) {
if (m_DBClass1.DB_Insert() == true) {
MessageBox.Show(”データ挿入完了”);
} else {
MessageBox.Show(”データ挿入失敗”);
}
} else {
MessageBox.Show(”DB接続Error”);
}
if (m_DBClass1.DB_Close() == true) {
MessageBox.Show(”DBクローズ完了”);
} else {
MessageBox.Show(”DBクローズ失敗”);
}
}
}
}
|
5)
これで、ビルドをかけて、アプリケーションを実行すれば
準備しておいたAccessのデータベースにINSERT文で記述した内容が書き込まれる。
こんな感じ、
このように、
データベースを操作するSQL文の発行処理をいろいろと、
作ってやれば、C#からAccessデータベースを操作できる。
この記事が参考になるかは、わかりませんが、
いろいろと、試してみてはいかがでしょうか。
ご参考までにどうぞ。