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 下载并安装“Microsoft Access Database Engine 2010 Redistributable”(64 位):http: //www.microsoft.com/download/en/details.aspx?id= 13255

不幸的是,它没有解决问题。执行 myAdapptor.Fill() 时仍然出现错误。怎么了?

4

4 回答 4

6

您需要Access 2007 运行时

于 2011-11-28T21:22:30.237 回答
2

对于对我的解决方案感兴趣的其他人,我发现 Access 2010 不支持 Microsoft.ACE.OLEDB.14.0。相反,我使用了 Microsoft.ACE.OLEDB.12.0

您可以从这个站点下载他们的“2007 Office System 驱动程序:数据连接组件”:2007 Office System 驱动程序:数据连接组件

于 2011-11-30T09:20:13.810 回答
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 回答