2010-12-13 84 views
1

哎, 我是新的连接到数据库,并由于某种原因,每次使用的下列行我的程序崩溃时:我的debug文件夹内如何用C#连接到访问2007

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\Company.accdb" 
    OleDbConnection con = new OleDbConnection(connectionString); 

我得到公司.accdb访问文件 编辑: 我越来越'Microsoft.Ace.OLEDB12.0'提供者没有在本地机器上注册任何想法如何解决它? 在此先感谢您的帮助

+0

您收到的错误消息是什么? – 2010-12-13 09:48:13

+0

好吧,你的数据源属性看起来不太好? – 2010-12-13 09:49:51

+0

好吧,我不想显示所有的代码它的小点太多,以显示我知道程序崩溃那里...当我把尝试和赶上它我得到以下异常:“类型初始值设定项抛出一个异常,does not说很多 – 2010-12-13 09:52:14

回答

2

两件事情 -

  1. 此连接字符串依靠ACE OLEDB提供商(通常随Office 2007 - 你的机器需要有这样的供应商)
  2. 连接字符串请求数据字典。您可能需要使用下面的表格:

    Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\ myFolder \ myAccess2007file.accdb; Persist Security Info = False;

密码保护的文件,形式是Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Jet OLEDB:Database Password=MyDbPassword;

我也建议尝试不同的供应商(ODBC也许)来代替。对于Access 2007的各种连接字符串,请参阅http://www.connectionstrings.com/access-2007

+0

我越来越'Microsoft.Ace.OLEDB12.0'供应商未在本地机器上注册任何想法如何解决它? – 2010-12-13 10:01:22

+0

@Nadav,如上所述,该组件通常随Office 2007一起提供。无论如何,您可以从http://www.microsoft.com/downloads/en/details.aspx?familyid=7554f536-8c28-4598-9b72-ef94e038c891&displaylang=en – VinayC 2010-12-13 10:10:24

+0

下载它显然,除此之外还有其他原因导致此错误没有安装(见OP评论)。 – Fionnuala 2010-12-13 10:49:05