2012-09-18 50 views
0

我正在製作Windows窗體應用程序來檢索有關列表項目的詳細信息。 我做的代碼和它的運行沒有錯誤,但它返回0個項目,即使有列表中的項目 誰能告訴我什麼原因可能是?SharePoint網絡服務GetListItems

這是XML響應我得到:

<listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 
<rs:data ItemCount="0"> 
</rs:data> 
</listitems> 

下面的代碼:

Dim listService As New Lists() 
listService.Credentials = System.Net.CredentialCache.DefaultCredentials 

listService.Url = "http://sitename/_vti_bin/lists.asmx" 

    Dim xmlDoc As New System.Xml.XmlDocument() 
    Dim listName As String = "{83FEDC7E-1DDA-4A36-910A-D5140E51F0ED}" 
    Dim viewName As String = "{77A23176-5CD4-46E9-BE57-AEB4D4279AD4}" 
    Dim rowLimit As String = "150" 
    Dim query As System.Xml.XmlNode = xmlDoc.CreateElement("Query") 
    Dim viewFields As System.Xml.XmlNode = xmlDoc.CreateElement("ViewFields") 
    Dim queryOptions As System.Xml.XmlNode = xmlDoc.CreateElement("QueryOptions") 
    query.InnerXml = "<Query><Where><Contains><FieldRef Name='Title'/><Value Type='Text'>lol</Value></Contains></Where></Query>" 
    viewFields.InnerXml = "" 
    queryOptions.InnerXml = "<ViewAttributes Scope='Recursive' />" 
    Dim nodeListItems As XmlNode 
    nodeListItems = listService.GetListItems(listName, viewName, query, viewFields, rowLimit, queryOptions, Nothing) 
    TextBox1.Text += nodeListItems.OuterXml 

UPDATE: * 錯誤是,我給在同一個域和用戶名憑據字段。 *

+0

你怎麼能指望我們如果你不告訴我們你是如何找回你的物品的話,可以幫助你。 –

+0

對不起,現在有代碼 請幫忙 – user1648225

回答

1

我相信這條線是錯誤的:

query.InnerXml = "<Query><Where><Contains><FieldRef Name='Title'/><Value Type='Text'>lol</Value></Contains></Where></Query>" 

的節點是 「查詢」 本身,所以這將與此xml結尾:

<Query><Query> 
     <Where><Contains><FieldRef Name='Title'/><Value Type='Text'>lol</Value></Contains></Where> 
</Query></Query> 
+0

其仍然沒有返回項目 – user1648225

+0

快速猜測,刪除列表名稱和視圖名稱周圍的大括號。它實際上是一個字符串,在使用括號時我對模糊問題有記憶。 –

+0

我試過,但它仍然沒有工作 你認爲它可能是列表權限或什麼東西有問題? – user1648225