データベースの操作~その1
データベースへの接続、クエリの実行、結果セットの表示はすべてコードから作成しますが、データベースファイルはプロジェクトに組み込んでおきます。使用するデータベースは、「ギター販売集計.mdb」というMicrosoft Accessで作成したデータベースで、「製品リスト」という簡単なテーブルを操作対象にします。
このデータベースを、データベース構成ウィザードでプロジェクトに組み込んでおきます(コピーを出力しておくようにします)。
データ接続とクエリの実行処理
データベースファイルをプロジェクトへ組み込んだら、OLEDBプロバイダを用いてデータベースに接続しクエリを実行します。この作業は、次の順序で行います。
- OleDbConnectionクラスのインスタンスを作成し、データベースに接続します。
- OleDbDataAdapterクラスとDataSetクラスのインスタンスを作成し、クエリ用文字列を用いて、OleDbDataAdapterクラスのFillメソッドでクエリを実行。そして、実行結果のデータテーブルをDataSetクラスのインスタンスに格納します。
このプログラムでは、クエリ用SQL文字列を変えることで、いろいろなパターンのクエリが実行できるように、専用のプロシージャ(C#ではメソッド)を作成します。作成するプロシージャ(メソッド)は「db_run」で、sql文字列とタブページに表示するタイトル文字列、実行するクエリの番号(任意の数字)の3つを引数に持ちます。
データベースはAccessのデータファイルなので、OLEDBプロバイダは「Microsoft.Jet.OLEDB.4.0」を使用します。接続するデータベースファイルは、既にプロジェクトに組み込んでいるので、ファイル名だけ指定します。
Imports GrapeCity.Win.Containers Public Class Form1 Private Sub db_run(ByVal sqlstr As String, ByVal title As String, ByVal pos As Integer) Dim connString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", "ギター販売集計.mdb") Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(connString) Dim adapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sqlstr, conn) Dim myDataSet As DataSet = New DataSet() adapter.Fill(myDataSet, "fill")
using GrapeCity.Win.Containers; namespace tabdb_cs { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void db_run(string sqlstr, string title, int pos) { string connString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", "ギター販売集計.mdb"); System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connString); System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(sqlstr, conn); DataSet myDataSet = new DataSet(); adapter.Fill(myDataSet, "fill");