14

演習用の簡単なアプリケーションを作成したいので、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: http://www.microsoft.com/download/en/details.aspx?id=13255から「Microsoft Access データベース エンジン 2010 再頒布可能パッケージ」(64 ビット) をダウンロードしてインストールしようとしました。

残念ながら、問題は解決しませんでした。myAdapptor.Fill() が実行されると、まだエラーが発生します。なにが問題ですか?

4

4 に答える 4

6

Access2007ランタイムが必要です。

于 2011-11-28T21:22:30.237 に答える
1

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

接続 文字列について

OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Aishwar NIGAM\\Documents\\indianOil.accdb");
于 2014-08-08T09:06:27.710 に答える
0

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

于 2013-05-05T22:56:58.050 に答える