使用C#连接到链接到SharePoint列表的Access数据库

本文关键字:Access 数据库 列表 链接 连接 使用 SharePoint | 更新日期: 2023-09-27 18:27:39

我有一个窗口应用程序,我正试图在其中连接到Access数据库,该数据库有一个使用C#中的OLEDB链接到SharePoint列表的表

我的尝试:

  1. 数据库使用Access 2007格式,ConnectionString使用Microsoft.ACE.OLEDB.12.0
    • 一切正常,直到有人报告错误"'Microsolf.ACE.OLEDB.12.0'提供商未在本地机器上注册"
    • 检查:他有Windows x86、Access 2003,但没有2007,并且没有安装"2007 Office System Driver:Data Connectivity Components"
    • 安装这些真的很麻烦,也很耗时(公司的机器)
  2. 数据库使用Access 2003格式,ConnectionString使用Microsoft.ACE.OLEDB.12.0
    • 与上述错误相同。所以我想是"微软.ACE.OLEDB.12.0"造成了这个问题。但我不知道怎么把它修好
  3. 对数据库使用Access 2003格式,对ConnectionString使用Microsoft.Jet.OLEDB.4.0
    • 我的计算机上出现错误:"找不到可安装的ISAM"(我没有Access 2003,但只有Access 2007)
    • 他的机器工作得很好

请帮助我指出我可以做些什么来解决这个问题,而不必让每个人都将Office版本更新到2007,或者在连接到Access数据库之前让应用程序检查人们的Office版本。

提前谢谢。

使用C#连接到链接到SharePoint列表的Access数据库

作为一般规则,您不能链接到其他链接到数据的东西!

如果SharePoint上的数据为何尝试在此处使用Access?您永远无法链接到已将表链接到SQL server的Access数据库,因此以这种方式访问SharePoint就没有什么意义了。

更糟糕的是,我不相信SharePoint支持oleDB链接表。虽然Access确实支持oldDB,并且您试图连接到Access,但您需要记住,ADO已经相当贬值了。虽然Access数据引擎继续接收各种新功能,如复杂的数据支持(多值SharePoint列),以及我们为Access 2010和SharePoint提供的新的离线断开连接模式,但这些功能肯定不适合通过尝试链接到链接表来使用。如前所述,由于Access过去链接到SQL server或SharePoint,因此没有人建议您现在尝试链接到Access文件,然后Access文件必须对SharePoint进行web服务调用(顺便说一句,Access对SharePoint进行web服务调用以使用该数据)。

既然数据在SharePoint上,为什么要尝试访问本地硬盘上的一些基于文件的"东西"?为什么不将SharePoint网站作为web服务?在.net中有大量的web服务和使用SharePoint列表的方法。我认为没有什么理由和优势可以在.net中抛弃所有出色的技术和能力来使用web服务,然后尝试读取一些具有SharePoint链接的基于文件的Access数据库。这样的设置唯一有意义的方法是,如果您的开发是Access中的主要开发,那么在这里放弃使用c#并只使用Access是有意义的。

因此,我的建议是使用c#中的SharePoint列表,并在此处绕过Access数据引擎。