2009-11-17 57 views
0

我有一個共享點列表,其中有幾個字段。看起來,當一個字段在其中一個記錄上留空時 - 當我使用CAML查詢查詢列表時,該字段缺少該屬性。CAML查詢查找參數不存在的記錄?

是否可以寫一個查詢來返回不包含這個屬性的記錄?

例子:

id Employee Title description 
------------------------- 
1 Jeff Person1 
2 Bob Person2 
3 Charles Person3 
4 Person4 
5 Person5 

有什麼辦法來查詢這不僅是因爲他們已經離開了名字字段爲空返回id爲4和5的記錄?

我試過如下:

System.Text.StringBuilder xmlQuery = new StringBuilder(); 
xmlQuery.Append("<Query>");   
xmlQuery.Append(" <Where>");   
xmlQuery.Append("  <IsNull>");    
xmlQuery.Append("   <FieldRef Name=\"Employee Title\" />");   
xmlQuery.Append("  </IsNull>");  xmlQuery.Append(" </Where>");   
xmlQuery.Append("</Query>");  XmlNode query = new XmlDocument();   
query.InnerXml = xmlQuery.ToString(); 

但當然的屬性不會在這些記錄存在,所以沒有什麼是提前返回

謝謝!


編輯

Namex0020

xmlQuery.Append("   <FieldRef Name=\"Employee_x0020_Title\" />"); 

回答

1

如果一個字段值是缺少一個或多個字段應該不會出現任何問題更換任何空格後的查詢工作,這只是正常的,應該工作。但是,您在查詢中必須做的一項更改是刪除外部查詢標記,請使用下面的查詢,您應該很好。

<Where>  
<IsNull>   
<FieldRef Name="Name" />  
</IsNull> 
</Where> 
+0

感謝您的肯定,這是可能的!我發現我的錯誤,我想我應該發佈我的實際代碼而不是樣本。該示例工作爲我的代碼沒有。如果我能投票,我會的。謝謝! – Khan 2009-11-20 20:43:34

+0

現在可以立刻起來,所以我做到了。 :) – Khan 2012-02-27 21:56:31

0

這是一個很長的名字,但是名單中實際名爲「標題」的是「名稱」列嗎?

FieldRefs預計字段的內部名稱AFAIK