我正在使用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语句?
答案 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>"
,它给了我预期的结果