C# microsoft.ace.oledb.12.0提供程序未在本地计算机上注册
我有以下程序,希望在MS Access中插入值。我收到错误“microsoft.ace.oledb.12.0提供程序未在本地计算机上注册” 我已经按照一些开发人员的建议安装了数据库引擎,但是我仍然得到了错误 我正在用VS-2008和MS-Access-2007在Vista机器上编写代码 请帮我解决这个错误 公共部分类Form1:FormC# 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
{
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,此安装可从以下站点获得: 这次安装之后