OLEDB连接访问数据库(accdb)

本文关键字:accdb 数据库 连接 访问 OLEDB | 更新日期: 2023-09-27 18:15:55

我想做一个简单的应用程序练习,所以它可以很好地连接到一个简单的数据库,如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下载并安装"Microsoft Access Database Engine 2010 Redistributable"(64位)。

不幸的是,这并没有解决问题。当myadaptor . fill()执行时,我仍然得到了错误。怎么了?

OLEDB连接访问数据库(accdb)

您需要Access 2007运行时

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

您可以从这个网站下载他们的"2007 Office系统驱动程序:数据连接组件":2007 Office系统驱动程序:数据连接组件

add using System.Data.OleDb library.

现在用于连接字符串

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

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