2012-03-14 73 views
2

我有在我试图连接到具有一台在C#连接访问,使用C#

我尝试使用OLEDB连接到SharePoint列表中的Access数据库的窗口应用程序链接到SharePoint列表数据库:

  1. 使用访问数据库2007格式和ConnectionString中
    • 一切Microsoft.ACE.OLEDB.12.0工作完全没有问题,直到重新的一个人报告错误“'Microsolf.ACE.OLEDB.12.0'提供者未在本地机器上注册
    • 检查:他有Windows x86,Access 2003,但不是2007,并且没有“ 2007 Office系统驱动程序:数据连接组件”安装
    • 真是麻烦和费时得到这些安装(公司的机器)
  2. 使用访问数据库和Microsoft.ACE.OLEDB 2003格式。连接字符串12.0
    • 与上述相同的错误。所以我想这是导致问题的“Microsoft.ACE.OLEDB.12.0”。但我不知道如何修复它。
  3. 使用访问2003格式数据库和我的机器上的ConnectionString
    • 错误Microsoft.Jet.OLEDB.4.0: “找不到可安装ISAM”(我不吨有Access 2003中,但只有Access 2007年)
    • 他的机器:完美的作品

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

在此先感谢。

+1

您排除安装'2007 Office System Driver',因此您排除了第1点和第2点。我将尝试理清“无法找到可安装的ISAM”和 – Steve 2012-03-14 10:30:28

+1

我想你正在使用创建应用程序32位ACE驱动程序,所以Jet 4.0驱动程序应该适合您的机器。在我切换到64之前,我有ACE和Jet:http://support.microsoft.com/kb/829558 – Fionnuala 2012-03-14 10:46:38

+0

@Steve是的,期待你的帮助。我认为这应该可以修复,因为我相信Microsoft Office应该向后兼容,对吧? – 2012-03-16 05:19:06

回答

1

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

如果坐在SharePoint上的数据为什么试图在这里使用Access?你永远不能链接到一个将表链接到SQL服务器的Access数据库,所以这使得用这种方法打SharePoint是很没有意义的。

更糟糕的是,我不认为SharePoint支持oleDB链接表。虽然Access确实支持oldDB,并且您试图连接o Access,但您仍想记住ADO已被折旧。虽然Access数据引擎可以继续接收各种新功能,如复杂数据支持(多值SharePoint列),以及我们针对SharePoint 2010中Access 2010的新线断开模式,但这些功能当然不适用于通过尝试链接到链接的表来消费。如前所述,由于过去Access连接到SQL Server或SharePoint,因此没有人会建议您现在尝试链接到Access文件,然后反过来必须将Web服务调用到SharePoint(顺便说一下,Access使Web服务调用到SharePoint消费那些数据)。

由于数据在SharePoint上,您为什么试图打到一些基于本地硬盘驱动器的文件?为什么不直接将SharePoint网站作为网络服务?有大量的Web服务以及在.net中使用SharePoint列表的方式。我发现没有什么理由和优势可以将.net中的所有奇妙技术和功能都转换为使用Web服务,然后尝试读取某些基于文件的Access数据库,这些数据库链接到SharePoint。这种设置的唯一方法是有意义的,如果你的开发在Access中是主要的,那么在这里转储使用c#并且使用Access是有意义的。

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

+0

谢谢,我也想到了这一点。 (免责声明:我对SP没有太多的知识,所以如果我说错了什么,请帮助纠正我)主要问题是我无法访问SP中的数据(无userid/pwd)。我只提供一个链接来查看自定义视图中的数据。这就是我选择使用Access的原因。我错过了从SP视图获取数据的任何内容吗? – 2012-03-16 05:16:30