我有以下程序,我想在MS-Access.I中插入这些值。我收到错误消息“microsoft.ace.oledb.12.0 provider is not registered on the local machine”
我已经按照一些开发人员的建议安装了数据库引擎,但我仍然收到错误。
我在Vista机器上使用VS-2008和MS-Access-2007编写代码。
请帮我解决这个错误
公共分部类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);
}
}
}发布于 2012-09-12 16:04:09
尝试将高级编译配置更改为x86。这通常是因为您使用的是64位操作系统。
在VS2008中
Build -> Configuration Manager -> Active Solution Platform:->新建->类型或选择新平台-> x86 ->确定
编辑:
尝试以下操作:
去
C:\Windows\SysWOW64打开odbcad32.exe
如果在列表中找不到excel,只需单击“添加”并添加它。
发布于 2012-09-12 15:31:13
您可以将程序集注册到RegSrv32
因为您使用的是COM,而COM必须注册。
链接:http://msdn.microsoft.com/en-us/library/ms859484.aspx
RegSrv32允许您在注册基中注册COM (microsoft.ace.oledb.12.0提供程序)
发布于 2012-09-12 21:16:33
以前,当我在安装了Office 2003而不是Office 2007的用户计算机上部署应用程序时,我遇到过此问题。在我看来,您计算机上的Office版本安装不正确。
一种可能的解决方法是将提供程序更改为以前的版本,如Microsoft.ace.oledb.4.0,并查看相同的错误是否仍然存在。
https://stackoverflow.com/questions/12383115
复制相似问题