OLEDB连接到Access数据库(accdb)

时间:2011-11-28 21:10:17

标签: c# asp.net oledbconnection

我想为练习制作一个简单的应用程序,所以连接到像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。 当我使用内置调试模式“Start without Debugging”(CTRL + F5)测试我的应用程序时,我收到此错误:

“Microsoft.ACE.OLEDB.14.0”提供程序未在本地计算机上注册。

我尝试从Microsoft omepage下载并安装“Microsoft Access数据库引擎2010可再发行组件”(64位):http://www.microsoft.com/download/en/details.aspx?id=13255

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

4 个答案:

答案 0 :(得分:7)

您需要Access 2007 Runtime

答案 1 :(得分:2)

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

您可以从以下网站下载“2007 Office System驱动程序:数据连接组件”:2007 Office System Driver: Data Connectivity Components

答案 2 :(得分:0)

有一个类似的问题,但在我的情况下只是一个计划旧的mdb。 Provider = Microsoft.Jet.OLEDB.4.0可以解决这个问题,无需下载任何额外的运行时。

答案 3 :(得分:0)

使用System.Data.OleDb库添加。

现在用于连接 字符串

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