【问题标题】:OLEDB connection to Access Database (accdb)OLEDB 连接到 Access 数据库 (accdb)
【发布时间】:2011-11-28 21:10:16
【问题描述】:

我想为练习制作一个简单的应用程序,因此最好连接到 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() 时仍然出现错误。 怎么了?

【问题讨论】:

  • 您的操作系统的位数是多少?如果操作系统是 32 位,则 64 位将无法工作,反之亦然,您也不会并排安装。

标签: c# asp.net oledbconnection


【解决方案1】:

您需要Access 2007 Runtime

【讨论】:

  • 感谢您的回答。您的解决方案也可能会有所帮助。我通过从该站点下载“2007 Office System 驱动程序”来解决这个问题:microsoft.com/download/en/…我认为您建议的“Access 2007 运行时”会做同样的工作:-)。
  • Access 2007 Runtime 提供Microsoft.ACE.OLEDB.12.0 如果你想使用14th你必须下载Access 2010 Runtime microsoft.com/en-us/download/details.aspx?id=10910
【解决方案2】:

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

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

【讨论】:

  • Microsoft Access 2007 = ACE 12; Microsoft Access 2010 = ACE 14; Microsoft Access 2013 = ACE 15
【解决方案3】:

使用System.Data.OleDb 库添加。

现在是连接 字符串

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-23
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 2014-09-02
      • 1970-01-01
      • 2020-04-29
      相关资源
      最近更新 更多