2014-01-29 30 views
1

以下來從在SharePoint 2013中的所有任務列表的任務是我的查詢: -無法使用CAML

SPSiteDataQuery oQuery = new SPSiteDataQuery(); 

oQuery.Lists = "<Lists ServerTemplate=\"171\" />"; 
oQuery.Query = string.Concat("<Where>", 
           "<Eq>", 
           "<FieldRef Name='Status' />", 
           "<Value Type='Choice'>Not Started</Value>", 
           "</Eq>", 
          "</Where>"); 
oQuery.ViewFields = "<FieldRef Name=\"Title\" />" + /* Title is LastName column </Today>*/ 
         "<FieldRef Name=\"StartDate\"/>" + 
         "<FieldRef Name=\"DueDate\"/>" + 
         "<FieldRef Name=\"LinkTitle\"/>" + 
         "<FieldRef Name=\"Body\"/>" + 
         "<FieldRef Name=\"NewStarter\"/>" + 
         "<FieldRef Name=\"AssignedTo\"/>"; 
oQuery.Webs = "<Webs Scope=\"Recursive\" />"; 

我在我的SharePoint網站6名任務列表。我可以在6個任務列表中看到狀態爲「未開始」的任務。但是,在Visual Studio 2012中,當我使用CAML查詢使用ID爲171的任務列表時,我看不到任何任務。我在查詢中做錯了什麼?

回答

2

我有同樣的問題,請檢查您正在接受的網站。調試應用程序並檢查哪些項目被提取。

在調試/添加監視期間在Visual Studio中使用您的site.url屬性。

+0

是的,你是對的,它確實指向另一個網站.. – variable

0

您可能會使用錯誤的ServerTemplate。根據MSDN 107是任務的模板ID。 171是TasksWithTimelineAndHierarchy

+0

我使用107嘗試過,這不返回任何結果(0結果)。但是,使用171我會得到工作流任務列表的項目。但不是其他任務列表 – variable

+0

你說得對,現在我注意到107適用於舊的2010任務列表模板,171是2013年應該使用的新模板。 –

+0

另一個想法 - 也許你可以改變oQuery.Webs到「」,只是爲了看看它是否返回任何結果 –