C# microsoft.ace.oledb.12.0提供程序未在本地计算机上注册

C# microsoft.ace.oledb.12.0提供程序未在本地计算机上注册,c#,asp.net,C#,Asp.net,我有以下程序,希望在MS Access中插入值。我收到错误“microsoft.ace.oledb.12.0提供程序未在本地计算机上注册” 我已经按照一些开发人员的建议安装了数据库引擎,但是我仍然得到了错误 我正在用VS-2008和MS-Access-2007在Vista机器上编写代码 请帮我解决这个错误 公共部分类Form1:Form { public Form1() { InitializeComponent(); } OleDbConnect

我有以下程序,希望在MS Access中插入值。我收到错误“microsoft.ace.oledb.12.0提供程序未在本地计算机上注册”

我已经按照一些开发人员的建议安装了数据库引擎,但是我仍然得到了错误

我正在用VS-2008和MS-Access-2007在Vista机器上编写代码

请帮我解决这个错误

公共部分类Form1:Form

{
    public Form1()
    {
        InitializeComponent();
    }
    OleDbConnection con;
    OleDbCommand cmd;
    private void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {
             con = new OleDbConnection("Provider=Microsft.ACE.Oledb.12.0;Data Source=C:\\Users\\Satish\\Documents\\Testing.accdb");
            con.Open();
            string cmdText = "Insert Into UserDetail (UsrName,Age,Address,MobileNo) Values ('" + txtName.Text.ToString().Trim() + "','" + txtAge.Text.ToString().Trim() + "','" + txtAddress.Text.ToString().Trim() + "','" + txtMobile.Text.ToString().Trim() + "')";
             cmd = new OleDbCommand(cmdText, con);
            cmd.ExecuteNonQuery();
            con.Close();

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }


    }


}

您可以使用
RegSrv32

因为您使用的是
COM
,而COM必须重新注册

链接:


RegSrv32允许您在register base(microsoft.ace.oledb.12.0提供程序)中注册COM

您可以使用
RegSrv32

因为您使用的是
COM
,而COM必须重新注册

链接:


RegSrv32允许您在注册库(microsoft.ace.oledb.12.0提供程序)中注册COM。

尝试将高级编译配置更改为x86。 这通常是因为您有64位操作系统

在VS2008

构建->配置管理器->活动解决方案平台:->新建->键入或选择新平台->x86->确定

编辑:

请尝试以下操作:

C:\Windows\SysWOW64
打开
odbcad32.exe


如果在列表中找不到excel,请单击“添加”并添加它

尝试将高级编译配置更改为x86。 这通常是因为您有64位操作系统

在VS2008

构建->配置管理器->活动解决方案平台:->新建->键入或选择新平台->x86->确定

编辑:

请尝试以下操作:

C:\Windows\SysWOW64
打开
odbcad32.exe


如果在列表中找不到excel,只需单击“添加”并添加它

我以前在安装了Office 2003而不是Office 2007的用户计算机上部署应用程序时遇到过此问题。在我看来,您计算机上的Office版本安装不正确


一种可能的解决方法是将您的提供商更改为以前的版本,如Microsoft.ace.oledb.4.0,然后查看相同的错误是否仍然存在。

我以前在安装了Office 2003而不是Office 2007的用户计算机上部署应用程序时遇到过此问题。在我看来,您计算机上的Office版本安装不正确


一种可能的解决方法是将提供程序更改为以前的版本,如Microsoft.ace.oledb.4.0,然后查看是否仍然存在相同的错误。

首先需要检查应用程序的生成配置

  • 如果您已经在x86平台下构建了项目,那么为了 解决您的问题您应该在计算机上安装以下软件包 机器:

  • 要使用“Microsoft.ACE.OLEDB.12.0”提供程序,您必须 安装Microsoft Access数据库引擎2010可再发行版 首先,此安装可在以下位置获得: .

    安装完成后,如果出现以下情况,请尝试运行应用程序 很好地解决了问题,如果没有,请继续执行步骤2

  • 下一步是一个无法解释的解决方案,适用于Office 2010年,尽管它是Office 2007的数据连接组件。我不太清楚这为什么有效,但它确实有效,并且已经被证明在几乎所有情况下都有效。您需要安装2007 Office System Driver:Data Connectivity Components,此安装可从以下站点获得:

    此安装完成后,请尝试运行应用程序,这将解决问题

  • 如果您试图运行在x64或任何CPU下构建的应用程序 平台,我建议首先验证它是否按预期运行 在x86平台下。如果不在该条件下运行 x86平台,执行第一部分中的步骤并验证 它按预期运行

    我确实读到了MS Access驱动程序,包括OLEDB数据库 驱动程序仅在x86平台下工作,在 x64或任何CPU平台。但这似乎是不真实的。我 在构建x86时验证了我的应用程序正在运行,然后 使用被动标志安装了Access数据库引擎

  • 首先在本地下载文件,您可以下载安装 在这里:
  • 使用带有“/passive”标志的命令提示符进行安装In 命令提示符将运行以下命令: “AccessDatabaseEngine_x64.exe/passive”
  • 在这两个步骤之后,我在构建应用程序之后成功地运行了我的应用程序 x64或任意CPU构建配置。这似乎解决了我的问题


注意:步骤的顺序似乎有所不同,因此请相应地遵循。

首先需要检查的是应用程序的构建配置

  • 如果您已经在x86平台下构建了项目,那么为了 解决您的问题您应该在计算机上安装以下软件包 机器:

  • 要使用“Microsoft.ACE.OLEDB.12.0”提供程序,您必须 安装Microsoft Access数据库引擎2010可再发行版 首先,此安装可在以下位置获得: .

    安装完成后,如果出现以下情况,请尝试运行应用程序 很好地解决了问题,如果没有,请继续执行步骤2

  • 下一步是一个无法解释的解决方案,适用于Office 2010年,尽管它是Office 2007的数据连接组件。我不太清楚这为什么有效,但它确实有效,并且已经被证明在几乎所有情况下都有效。您需要安装2007 Office System Driver:Data Connectivity Components,此安装可从以下站点获得:

    这次安装之后