【问题标题】:Connect to Access database that links to SharePoint lists using C#使用 C# 连接到链接到 SharePoint 列表的 Access 数据库
【发布时间】:2012-03-14 05:57:40
【问题描述】:

我有一个窗口应用程序,我在其中尝试连接到一个 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
    • 与上述相同的错误。所以我猜这是导致问题的“Microsoft.ACE.OLEDB.12.0”。但我不知道如何解决。
  3. 对数据库使用 Access 2003 格式,对 ConnectionString 使用 Microsoft.Jet.OLEDB.4.0
    • 我的机器上出现错误:“找不到可安装的 ISAM”(我没有 Access 2003,只有 Access 2007)
    • 他的机器:完美运行

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

提前致谢。

【问题讨论】:

  • 您排除了“2007 Office System Driver”的安装,因此您也排除了您的第 1 点和第 2 点。我将尝试整理“找不到可安装的 ISAM”和
  • 我猜您正在使用 32 位 ACE 驱动程序创建您的应用程序,因此 Jet 4.0 驱动程序应该可以在您的机器上使用。在我切换到 64 之前,我同时拥有 ACE 和 Jet:support.microsoft.com/kb/829558
  • @Steve 是的,期待您的帮助。我认为这应该可以解决,因为我认为 Microsoft Office 应该是向后兼容的,对吧?
  • 我目前做的是查看机器上安装了什么Office版本,然后使用对应的数据库和连接。虽然不是一个理想的解决方案..

标签: c# sharepoint ms-access .net-2.0 oledb


【解决方案1】:

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

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

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

既然数据在 SharePoint 上,您为什么要尝试访问位于本地硬盘驱动器上的基于文件的“事物”?为什么不直接将 SharePoint 网站作为 Web 服务访问?在 .net 中有大量的 Web 服务和使用 SharePoint 列表的方法。我认为在 .net 中转储所有出色的技术和能力以使用 Web 服务,然后尝试读取一些具有指向 SharePoint 链接的基于文件的 Access 数据库几乎没有理由和优势。这种设置有意义的唯一方法是,如果您的开发主要在 Access 中进行,那么在此处转储 c# 的使用并仅使用 Access 是有意义的。

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

【讨论】:

  • 谢谢,我也想到了。 (免责声明:本人对SP知之甚少,如有说错,请大家帮忙指正) 主要问题是本人无权访问SP中的数据(无userid/pwd)。我只提供了一个链接来查看自定义视图中的数据。这就是我选择使用 Access 的原因。我是否错过了从 SP 视图获取数据的任何内容?
猜你喜欢
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
相关资源
最近更新 更多