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

C# ACE.OLEDB.12.0-Sharepoint连接参数无效,c#,sharepoint-2013,oledb,blueprism,rpa,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 O

对于我制作的一个项目,我需要使用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);
插入从Sharepoint生成的.iqy文件中获取的值,以代替xxx、yyy、ZZI

计算机在Windows 10 Enterprise x64上运行,并预装了Office Professional 2016 x86(请注意,不可能安装64位Office),包括Access 2016。Sharepoint server是Sharepoint 2013版本

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

有人建议我用“MicrosoftAccess数据库引擎2010”(x86)试试

从Microsoft page安装引擎后,上面的代码开始工作。我能够通过查询建立连接并获取列表

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

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

我还试图从连接字符串中删除WSS参数,但随后代码抛出错误
无法找到可安装的ISAM

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

  • 默认访问引擎(从Office):

    WSS;HDR=是;IMEX=2;数据库=XXX;LIST=YYY;RetrieveIds=是;表=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;数据库=XXX;LIST=YYY;RetrieveIds=是;表=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=是;IMEX=2;数据库=XXX;LIST=YYY;RetrieveIds=是;表=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

  • 已安装Access数据库引擎2010:

    WSS;HDR=是;IMEX=2;数据库=XXX;LIST=YYY;RetrieveIds=是;表=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;数据库=XXX;LIST=YYY;RetrieveIds=是;表=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=是;IMEX=2;数据库=XXX;LIST=YYY;RetrieveIds=是;表=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


  • 我已经没有主意了,如何建立此连接并使用Access使用的默认驱动程序,也不明白为什么相同的连接字符串适用于安装的2010版本,而不适用于默认Access 2016驱动程序。我将非常感谢您的建议。

    有点晚了,但这是因为微软在MS Access上做了一些改变,使其无法继续工作。我建议更改流程,以便bot使用MS SQL server。