ACE.OLEDB.12.0 - Sharepoint连接无效参数

时间:2018-01-24 13:52:25

标签: c# sharepoint-2013 oledb blueprism rpa

对于我制作的项目之一,我需要使用OleDB从Sharepoint检索列表。您可以在下面看到我使用的代码:

string ConnectionString = "WSS;HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.12.0";
string query = "Select * From [Table]";
OLEDBConnection conn = new OLEDBConnection(ConnectionString);  
conn.Open();
OLEDBDataAdapter dataAdapter = new OLEDBDataAdapter(query, conn);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);

代替xxx,yyy,zzz我插入从Sharepoint生成的.iqy文件中获取的值。

计算机在Windows 10 Enterprise x64上运行,并且预安装了Office Professional 2016 x86(请注意,安装64位Office没有任何意义),包括Access 2016.Sharepoint服务器是Sharepoint 2013版本。

通过此设置,代码在打开连接时抛出异常Invalid argument。我还确保12.0提供商已注册。尝试将提供程序更改为16.0版本确实导致完全相同的异常。

我被建议尝试使用“Microsoft Access数据库引擎2010”(x86)。

从上面的Microsoft页面代码安装该引擎后开始工作。我能够建立连接并使用查询获取列表。

但是,在打开Access之后,它在打开之前会运行一些修复(触发Office Professional安装)。修复后,代码再次停止工作,直到我重新安装“Microsoft Access数据库引擎2010”

我尝试使用Access Linked Table连接字符串中的参数。 (它使用ACEWSS;参数而不是WSS;),但没有任何结果。

我还尝试从连接字符串中删除WSS参数,但然后代码抛出错误Could not find installable ISAM

请在下面找到用于连接结果的所有连接字符串:

  1. 默认访问引擎(来自Office):

    WSS;HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.12.0" - 无效的参数
    ACEWSS;HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.12.0" - 无效的参数
    HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.12.0" - 无法找到可安装的ISAM WSS;HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.16.0" - 无效的参数
    WSS;HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.16.0" - 无效的参数
    HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.16.0" - 找不到可安装的ISAM

  2. 安装Access Database Engine 2010:

    WSS;HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.12.0" - 这个工作正常! ACEWSS;HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.12.0" - Microsoft Access数据库引擎找不到对象'Table' HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.12.0" - 无法找到可安装的ISAM WSS;HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.16.0" - 申请停止工作 ACEWSS;HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.16.0" - 应用程序停止工作。 HDR=YES;IMEX=2;DATABASE=XXX;LIST=YYY;RetrieveIds=Yes;TABLE=ZZZ;Provider=Microsoft.ACE.OLEDB.16.0" - 找不到可安装的ISAM

  3. 我已经没有想法,如何建立此连接并使用Access使用的默认驱动程序,并且既不理解为什么相同的连接字符串与安装的2010版本一起工作,也不能使用默认的Access 2016驱动程序。我将不胜感激。

0 个答案:

没有答案