fc2ブログ

トップ  >  サンプルソース  >  ACCESS検索/更新/削除(C#/VB.NET)

ACCESS検索/更新/削除(C#/VB.NET)

2010年06月18日

ACCESS(アクセス)MDBを操作(接続/検索/追加/更新/削除)するサンプル(ソース/コード)です。System.Data.OleDbを使用しています。System.Data.OleDbを使用すると汎用的(SQLサーバーやORACLEも可)に使用出来て便利です。

ちなみに、System.Data.SqlClientはSQLサーバー専用です。
System.Data.Odbcは汎用ですがODBC経由です。

ところで、このサンプルではプロバイダとしてMicrosoft.Jet.OLEDB.4.0を使用していますが、これはx86(32ビット)でのみ有効でx64(64ビット)では使用出来ません。x64(64ビット)のパソコンでMicrosoft.Jet.OLEDB.4.0を使用するためには、x86(32ビット)モードでコンパイルする必要があります。x86(32ビット)モードでコンパイルするためには、[プロジェクト]の[プロパティ]で[コンパイル]の[詳細コンパイルオプション]の[ターゲットCPU]を[x86]にする必要があります。

関連するサンプルはこちらです。
SQL SERVER検索/更新/削除(C#/VB.NET)
ORACLE検索/更新/削除(C#/VB.NET)
ACCESSパスワード変更(C#/VB.NET)
ACCESS最適化/修復(C#/VB.NET)

' -----------------------------------------------------------
' ACCESS(アクセス)MDBを操作するサンプル(VB.NET/VS2005)
' (必要)Imports System.Data.OleDb
Private Sub Button1_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles Button1.Click

    Dim dbCon As OleDbConnection
    Dim dbCmd As OleDbCommand

    ' ACCESS DB オープン
    dbCon = New OleDbConnection()
    Dim cst As String = ""
    cst = cst & "Provider=Microsoft.Jet.OLEDB.4.0;"
    cst = cst & "Data Source=" & "D:\Temp\db1.mdb"
    dbCon.ConnectionString = cst
    dbCon.Open()

    ' ACCESS DB レコード削除
    dbCmd = New OleDbCommand( _
        "delete from test", dbCon)
    dbCmd.ExecuteNonQuery()

    ' ACCESS DB レコード追加1
    dbCmd = New OleDbCommand( _
        "insert into test(col1,col2,col3) " & _
        "values('ABC',123,'2010-06-17 09:21:34')", dbCon)
    dbCmd.ExecuteNonQuery()

    ' ACCESS DB レコード追加2
    dbCmd = New OleDbCommand( _
        "insert into test(col1,col2,col3) " & _
        "values('AAA',111,'2010-11-11 11:11:11')", dbCon)
    dbCmd.ExecuteNonQuery()

    ' ACCESS DB レコード更新
    Dim dtm As String = Now.ToString("yyyy-MM-dd HH:mm:ss")
    dbCmd = New OleDbCommand( _
        "update test set " & _
        "col1 = 'DEF', " & _
        "col2 = '456', " & _
        "col3 = '" & dtm & "' " & _
        "where col1='ABC'", dbCon)
    dbCmd.ExecuteNonQuery()

    ' ACCESS DB レコード検索
    Dim dtTbl As New DataTable
    dbCmd = New OleDbCommand( _
        "select col1,col2,col3 from test", dbCon)
    Dim dbAdp As New OleDbDataAdapter(dbCmd)
    dbAdp.Fill(dtTbl)
    For i As Integer = 0 To dtTbl.Rows.Count - 1
        System.Diagnostics.Debug.WriteLine( _
            dtTbl.Rows(i)("col1").ToString() & ":" & _
            dtTbl.Rows(i)("col2").ToString() & ":" & _
            dtTbl.Rows(i)("col3").ToString())
    Next

    ' ACCESS DB クローズ
    dbCon.Close()
    dbCon.Dispose()
End Sub
' -----------------------------------------------------------

// ----------------------------------------------------------
// ACCESS(アクセス)MDBを操作するサンプル(C#.NET/VS2005)
// (必要)using System.Data.OleDb;
private void button1_Click(object sender, EventArgs e)
{
    OleDbConnection dbCon;
    OleDbCommand dbCmd;

    // ACCESS DB オープン
    dbCon = new OleDbConnection();
    String cst = "";
    cst = cst + "Provider=Microsoft.Jet.OLEDB.4.0;";
    cst = cst + "Data Source=" + @"D:\Temp\db1.mdb";
    dbCon.ConnectionString = cst;
    dbCon.Open();

    // ACCESS DB レコード削除
    dbCmd = new OleDbCommand(
        "delete from test", dbCon);
    dbCmd.ExecuteNonQuery();

    // ACCESS DB レコード追加1
    dbCmd = new OleDbCommand(
        "insert into test(col1,col2,col3) " +
        "values('ABC',123,'2010-06-17 09:21:34')", dbCon);
    dbCmd.ExecuteNonQuery();

    // ACCESS DB レコード追加2
    dbCmd = new OleDbCommand(
    "insert into test(col1,col2,col3) " +
    "values('AAA',111,'2010-11-11 11:11:11')", dbCon);
    dbCmd.ExecuteNonQuery();

    // ACCESS DB レコード更新
    String dtm =
        DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
    dbCmd = new OleDbCommand(
    "update test set " +
    "col1 = 'DEF', " +
    "col2 = '456', " +
    "col3 = '" + dtm + "' " +
    "where col1='ABC'", dbCon);
    dbCmd.ExecuteNonQuery();

    // ACCESS DB レコード検索
    DataTable dtTbl = new DataTable();
    dbCmd = new OleDbCommand(
    "select col1,col2,col3 from test", dbCon);
    OleDbDataAdapter dbAdp = new OleDbDataAdapter(dbCmd);
    dbAdp.Fill(dtTbl);
    for (int i = 0; i <= dtTbl.Rows.Count - 1; i++)
    {
        System.Diagnostics.Debug.WriteLine(
            dtTbl.Rows[i]["col1"].ToString() + ":" +
            dtTbl.Rows[i]["col2"].ToString() + ":" +
            dtTbl.Rows[i]["col3"].ToString());
    }

    // ACCESS DB クローズ
    dbCon.Close();
    dbCon.Dispose();
}
// ----------------------------------------------------------

SQL SERVER検索/更新/削除(C#/VB.NET) | トップページへ戻る | .NETインストール手順

このページのトップに戻る

コメント

名前
題名
メールアドレス
WEBサイト
 
コメント
パスワード
  管理者にだけ表示を許可する

このページのトップに戻る

トラックバック

このページのトップに戻る