查询文档库

时间:2011-08-08 03:30:32

标签: sharepoint-2010

我正在使用Sharepoint 2010作为我的文档库,用于与sharepoint通信的方法是通过webservice,因为sharepoint安装在单独的机器中。 当我添加我的库时,我需要更新一些其他列。我上传文件没有问题,但是当我想更新列时,我需要ID。

我上传了2个不同的文件,但是当我使用我的查询时,我将始终看到这两个文件。这是我使用的查询。

    Dim objXMLDoc As XmlDocument = New XmlDocument()
    Dim objXmlQuery As XmlElement = objXMLDoc.CreateElement("Query")
    Dim objXmlView As XmlElement = objXMLDoc.CreateElement("ViewFields")
    Dim objXmlOptions As XmlElement = objXMLDoc.CreateElement("QueryOptions")
    objXmlQuery.InnerXml = "<orderby><FieldRef Name='Created' Ascending='FALSE'/></orderby><where><eq><fieldref Name='FileLeafRef'/><value type='text'>" + strFileName + "</value></eq></where>"
    objXmlView.InnerXml = "<fieldref Name='ID'/>"
    objXmlOptions.InnerXml = "<ViewAttributes Scope='Recursive' />"
    Dim objXmlListItem As XmlNode = spProxy.GetListItems("DocLibName","DocLibView", objXmlQuery, objXmlView, "", objXmlOptions, vbNullString)

有人可以指导我吗?

我发现了这个问题,这是由于声明的顺序,无论如何我可以在CAML中包含order by语句?

1 个答案:

答案 0 :(得分:0)

我不知道为什么,但不知何故我改变了

objXmlQuery.InnerXml = "<orderby><FieldRef Name='Created' Ascending='FALSE'/></orderby><where><eq><fieldref Name='FileLeafRef'/><value type='text'>" + strFileName + "</value></eq></where>"

objXmlQuery.InnerXml = "<where><eq><fieldref Name='FileLeafRef'/><value type='text'>" + strFileName + "</value></eq></where><orderby><FieldRef Name='Created' Ascending='FALSE'/></orderby>"

,它给了我预期的结果