0

我将sharepoint连接到sql server db。我根据外部内容类型制作了一个列表。由于数据量很大,我必须在添加外部内容类型操作期间添加过滤器参数 - 在列表中。我使用默认值添加通配符和限制过滤器。我在外部内容类型上创建了列表。我运行默认列表网站。我没有看到任何数据。所以我编辑网页和

        <Method Name="ExternalList">
            <Filter Name="Filter" Value="A*"/>
            <Filter Name="Limit" Value="50"/>
        </Method>

这样它就起作用了。

我在 C# wpf 应用程序中编写

            server.Lists client = new server.Lists();
            client.Url = string.Format("{0}/_vti_bin/Lists.asmx", FixUrl("http://server:port/sites/SiteCollecion/"));
            client.Credentials = System.Net.CredentialCache.DefaultCredentials;
         try
            {
                string xmlQueryContent = @"<Query xmlns=""http://schemas.microsoft.com/sharepoint/soap/""></Query>";
                XmlDocument docQuery = new XmlDocument();
                docQuery.LoadXml(xmlQueryContent.ToString());
                XmlNode QueryNode = docQuery.DocumentElement;

                string xmlQueryOptionsContent = @"<QueryOptions></QueryOptions>";
                XmlDocument docQueryOptions = new XmlDocument();
                docQueryOptions.LoadXml(xmlQueryOptionsContent.ToString());
                XmlNode QueryOptionsNode = docQueryOptions.DocumentElement;

                XmlNode clientsNode = client.GetListItems("ExternalList", null, QueryNode, null, null, null, null);
                DataSet clientsListsDataSet = new DataSet();
                XmlReader clientsReader = new XmlNodeReader(clientsNode);
                XmlReadMode oko = clientsListsDataSet.ReadXml(clientsReader);

                Console.WriteLine(clientsNode.InnerText);
                Console.WriteLine(clientsNode.InnerXml);
             }

我得到 0 行结果。所以没有填充过滤器。是否可以在 C# 应用程序中设置它们?

连接工作正常,因为当我连接到非外部列表时我得到了结果。

4

1 回答 1

1

您可以尝试使用 REST/oData Web 服务来访问列表项,过滤器等功能是 REST/oData 协议的一部分。

您可以直接从 url 过滤项目和分页,例如:

/Products?$filter=ID lt 4

代码项目上的 OData 示例

http://www.codeproject.com/Articles/393623/OData-Services/

要在 SharePoint 2010 中访问 Rest/oData 服务,请使用 _vti_bin

/MySite/MySubSite/_vti_bin/listdata.svc/ExternalList

以下是一些关于使用 Windows 应用程序的 odata 的文章和博客:

http://www.c-sharpcorner.com/UploadFile/54db21/insert-data-from-sharepoint-list-using-odata-service/

http://www.orbitone.com/en/blog/archive/2010/06/09/odata-and-wcf-data-services.aspx

如果 REST/odata 没有自动开启,您可能需要安装一个小补丁。

于 2013-05-23T21:33:33.030 回答