朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら 
ADO.NET Accessデータベースへの接続方法





ADO.NETの基本はどのデータベースに対しても同じだと思います。
(1)接続情報を用意する。
(2)コネクションを用意する。
(3)SQL文のコマンドを用意する。
(4)各データベースの種類ごとのDataAdapterを用意して、先のコネクションとSQL文を実行する。
(5)SELECT文などの戻り値があれば、要したDataTableなどに格納して表示する。

Accessデータベースに接続するためには、System.Data.OleDbをインポートして、そこで定義されているクラスを利用します。
(1)OleDbConnectionStringBuilderクラス。接続情報を作成するヘルパークラスです。
(2)OleDbConnectionクラス。Accessデータベースとの接続を担うクラスです。
(3)OleDbCommandクラス。実行したいSQL文を設定するクラスです。SELECTだけではなく、UPDATEやINSERTなどもこれを利用します。
(4)OleDbDataAdapterクラス。Accessデータベースとのやり取りを担ってくれるクラスです。

なお32bitでも64bitでも動作します。
Accessデータベース特有な接続情報は、ProviderでAccess2007以降のファイルはMicrosoft.ACE.OLEDB.12.0と設定し、それ以前の場合はMicrosoft.Jet.OLEDB.4.0にします。
どっちのタイプになるかはファイルの拡張子でわかります。.accdbなら2007以降、.mdbならそれ以前です。
DataSourceには利用したいAccessファイルへのパスを記述します。

C#

//Accessファイルなのでこれを設定します。
using System.Data.OleDb;
namespace ADONET_Access
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            //Accessへの接続情報の設定をします。
            OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder();
            //Access2007形式のファイルなのでこれを設定します。
            builder.Provider = "Microsoft.ACE.OLEDB.12.0";
            //Accessファイルへのパスを設定します。
            builder.DataSource = "G:\\Database1.accdb";
            //接続情報を使ってコネクションを生成します。
            using (OleDbConnection conn = new OleDbConnection(builder.ConnectionString))
            {
                //SQL文とコネクションを設定します。
                using (OleDbCommand cmd = new OleDbCommand("SELECT * FROM T1", conn))
                {
                    //Accessファイルへの橋渡しのアダプターを設定します。
                    OleDbDataAdapter odda = new OleDbDataAdapter();
                    //SELECTコマンドを設定します。
                    odda.SelectCommand = cmd;
                    //SELECTの実行及びフェッチ
                    odda.Fill(dt);
                    //グリッドに表示します。
                    dataGridView1.DataSource = dt;
                }
            }
        }
    }
}

        

VB.NET

'Accessファイルなのでこれを設定します。
Imports System.Data.OleDb
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim dt As DataTable = New DataTable()
        'Accessへの接続情報の設定をします。
        Dim builder As OleDbConnectionStringBuilder = New OleDbConnectionStringBuilder()
        'Access2007形式のファイルなのでこれを設定します。
        builder.Provider = "Microsoft.ACE.OLEDB.12.0"
        'Accessファイルへのパスを設定します。
        builder.DataSource = "G:\\Database1.accdb"
        '接続情報を使ってコネクションを生成します。
        Using conn As New OleDbConnection(builder.ConnectionString)
            'SQL文とコネクションを設定します。
            Using cmd As New OleDbCommand("SELECT * FROM T1", conn)
                'Accessファイルへの橋渡しのアダプターを設定します。
                Dim odda As OleDbDataAdapter = New OleDbDataAdapter()
                'SELECTコマンドを設定します。
                odda.SelectCommand = cmd
                'SELECTの実行及びフェッチ
                odda.Fill(dt)
                'グリッドに表示します。
                DataGridView1.DataSource = dt
            End Using
        End Using
    End Sub
End Class

        








良いやや良い普通やや悪い悪い

投稿日時評価コメント