web-dev-qa-db-ja.com

Accessデータベース(accdb)へのOLEDB接続

演習用の簡単なアプリケーションを作成したいので、Access(.accdb)のような簡単なデータベースに接続すると便利です。

私のプログラムは次のようになります:

using System;
using System.Collections.Generic; 
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;

namespace myProject.Account
{
    public class DbManager
    {
       private OleDbConnection _dbConnection;

       public void OpenDbConnection()
       {
        _dbConnection = new OleDbConnection {ConnectionString = GetConnectionString()};
       }

       private string GetConnectionString()
       {
        return "Provider=Microsoft.ACE.OLEDB.14.0;Data Source=exercise1.accdb";
       }

       public void CloseDbConnection()
       {
        _dbConnection.Close();
       }

       public void GetUser()
       {
        DataSet myDataSet = new DataSet();
        var myAdapptor = new OleDbDataAdapter();
        OleDbCommand command = new OleDbCommand("SELECT * FROM tblUser", _dbConnection);
        myAdapptor.SelectCommand = command;
        myAdapptor.Fill(myDataSet, "tblUser");
       } 

    }
  }

Visual Studio 2010を使用しています。組み込みのデバッグモード "デバッグなしで開始"(CTRL + F5)を使用してアプリケーションをテストすると、次のエラーが発生します。

「Microsoft.ACE.OLEDB.14.0」プロバイダーがローカルマシンに登録されていません。

Microsoft omepageから "Microsoft Access Database Engine 2010 Redistributable"(64ビット)をダウンロードしてインストールしようとしました: http://www.Microsoft.com/download/en/details.aspx?id=13255 =

残念ながらそれは問題を解決しませんでした。 myAdapptor.Fill()を実行してもエラーが発生します。なにが問題ですか?

12
Jedi

Access 2007 Runtime が必要です。

6
Tom Bass

私のソリューションに関心のある他の人のために、Microsoft.ACE.OLEDB.14.0がAccess 2010ではサポートされていないことに気付きました。代わりに、Microsoft.ACE.OLEDB.12.0を使用しました。

「2007 Office System Driver:Data Connectivity Components」は次のサイトからダウンロードできます。 2007 Office System Driver:Data Connectivity Components

2
Jedi

同様の問題がありましたが、私の場合は計画が古いmdbでした。 Provider = Microsoft.Jet.OLEDB.4.0はそのためのトリックを実行します。追加のランタイムをダウンロードする必要はありません。

0
Rob Sedgwick

System.Data.OleDbライブラリを使用して追加します。

接続文字列

OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Aishwar NIGAM\\Documents\\indianOil.accdb");
0
Aishwar C Nigam