V alentine
B ooks
ヴァレンタイン書店

●VisualStudioの紹介

●画面プログラムの作り方

●コンソールプログラムの作り方

●DBプログラムの作り方(SELECT)

●DBプログラムの作り方(INSERT)

●DBプログラムの作り方(UPDATE)

●DBプログラムの作り方(DELETE)

●DB最適化

●AmazonMWSの使用方法

●YahooAPIの使用方法

●楽天APIの使用方法

●Webからのデータ取得方法

●レジストリを利用した利用者認証機能

●プログラム間の値の引継ぎ方法

●プログラム実行パスの取得

●デバッグ方法

●ショートカットキー

●設定

●64ビットOS対応

●ヴァレンタイン書店Web支店

●店長ブログ

                                        

大量のデータを扱うアプリを早く正確に作るにはDBの利用無しでは考えられません。
このページではAccessのMDBへアクセスするC#プログラムを紹介します。
Accessへのアクセスを行うにはマイクロソフトが開発した「OLE DB」のインターフェイスに対応している
「.NET Framework Data Provider for OLE DB」という.NETデータ・プロバイダを使用することになります。

System.Data.OleDb 名前空間については下記のサイトを参照願います
MSDN System.Data.OleDb 名前空間

以下にDBをSELECTする簡単なプログラムを紹介します。 DBアクセスの際には型の不正等の例外が何かと発生します。 DBアクセス時に発生した例外の内容を解析できるように例外発生をCatchできるように 作ることを心がけています。

8〜11行 接続文字列においてMDBのユーザIDとパスワードを指定する事が出来ます。 下記のように指定します。
User ID=Admin;
Jet OLEDB:Database Password=xxxx;

31行 GetString()等でデータを取得する際には型に気をつけてください。
適切な型を指定しないために例外発生することが多いです。

C#のOLEDBを用いたSELECTプログラム サンプル
1  using System.Data.OleDb;
2  
3  System.Data.OleDb.OleDbConnection cn = new System.Data.OleDb.OleDbConnection();
4  System.Data.OleDb.OleDbCommand com;
5  System.Data.OleDb.OleDbDataReader dRead;
6  
7  //接続文字列を設定し、データベースに接続する
8  cn.ConnectionString =
9  Provider=Microsoft.Jet.OLEDB.4.0; +
10 Data Source=D:\開発\uremasse_J_64\Amazon1\Amazon1\bin\x86\Release\uremasse.mdb + //MDBのフルパスを指定
11 ;Persist Security Info=False;User ID=Admin;Jet OLEDB:Database Password=xxxx;  
12 
13 try
14 {
15     cn.Open(); //DBオープン
16 
17     //DBコマンドの作成
18     com = new System.Data.OleDb.OleDbCommand("select Price from SKU where SKU = @SKU", cn);
19 
20     //パラメータ設定
21     System.Data.OleDb.OleDbParameter parm = com.Parameters.Add("@SKU", OleDbType.WChar, 50);
22     parm.Value = sku;
23 
24     dRead = com.ExecuteReader();
25 
26     //SKUの存在確認
27     if (dRead.HasRows == true)
28     {
29         dRead.Read(); //一行読む
30 
31         Price = dRead.GetString(0); //検索結果の取得
32     }
33 
34     dRead.Close(); //DataReaderのクローズ
35 
36     cn.Close(); //DBクローズ
37 
38     //MessageBox.Show(cn.State.ToString(), "通知");
39 }
40 catch (Exception ex)
41 {
42     MessageBox.Show(ex.Message, "通知 writeListView"); //こうするとDBアクセス中の例外をCatchできる
43 }