如何使用c#连接到access 2007

Posted

技术标签:

【中文标题】如何使用c#连接到access 2007【英文标题】:how to connect to access 2007 with c# 【发布时间】:2010-12-13 09:45:16 【问题描述】:

嘿, 我是连接数据库的新手,由于某种原因,每次我使用以下这些行时,我的程序都会崩溃:

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

在我的调试文件夹中,我得到了 Company.accdb 访问文件 编辑: 我收到“Microsoft.Ace.OLEDB12.0”提供程序未在本地计算机上注册任何想法如何解决? 提前感谢您的帮助

【问题讨论】:

您收到的错误信息是什么? 嗯,你的数据源属性看起来不太好? 好吧,我不想显示所有代码太多,以表明我知道程序在那里崩溃了......当我尝试并抓住它时,我得到以下异常:“类型初始化器抛出了一个没什么意思的异常 数据源=|数据目录|是调试中我的访问文件所在的目录 这可能很有趣:***.com/questions/238625/… 【参考方案1】:

两件事——

    此连接字符串依赖于 ACE OLEDB 提供程序(通常随 Office 2007 提供 - 您的计算机需要此提供程序)

    连接字符串正在请求数据字典。您可能需要使用以下表格:

    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

【讨论】:

我得到 'Microsoft.Ace.OLEDB12.0' 提供程序未在本地计算机上注册知道如何解决它吗? @Nadav,如前所述,这个组件通常随office 2007一起提供。无论如何,你可以从microsoft.com/downloads/en/…下载它 显然,这个错误除了没有安装之外还有其他原因(见OP评论)。 @Remou,你当然是对的!但是你已经向 OP 指出了这一点,所以在这里重复没有意义。希望两者都能解决 OP 的问题。 @VinayC 我注意到人们选择性地阅读主题,有些人会跳过原始问题,有些人会跳过大部分答案。对于您或 OP 而言,该评论与将来可能会阅读此主题的任何其他人相比。

以上是关于如何使用c#连接到access 2007的主要内容,如果未能解决你的问题,请参考以下文章

从 SQL Server 2008 迁移到 MS access 2007

如何在 Ms Access 2007 中使用 MySQL 视图,而不会出现字符串列的垃圾?

尝试连接到 SQL 表时,MS Access 2007 中的查询错误

如何在 C# 中使用 Access 2007 链接表管理器

如何从 MS access 2007 中的特定表中选择索引

将不同的表连接到 C# 组合框中的不同项目