2011-08-08 65 views
0

我使用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中包含声明顺序?

回答

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>" 

,它给了我预期的结果