2009-08-27 11 views
21

mam ten Caml (lol dzięki Alex)SharePoint: Jak sprawdzić wartość zerową za pomocą zapytania CAML?

query.Query = @"<Where><Eq><FieldRef Name='MessageID' /><Value Type='Text'></Value></Eq></Where>"; 

Sprawdza czy wartość komunikatu = string.empty()

Co chciałbym sprawdzić .... nie jest null pusty ciąg ...

Czy to możliwe z CAML?

+6

owijania wysyłania zapytań języka SQL, jak w XML: udar geniuszu lub czystej złośliwości? Ty decydujesz. – Juliet

+1

Działałoby, gdyby był to SQL ... ale jego inny funky (zepsuty) aspekt SharePoint. SharePoint nigdy nie rozczarowuje ... –

+1

Trzeba też pokochać dokumentację Microsofts - http://msdn.microsoft.com/en-us/library/dd588322%28office.11%29.aspx - wyjaśnia wszystko inne oprócz tego, jak używać isnull. ... –

Odpowiedz

46

CAML ma IsNull operatora, a zatem zapytanie może być:

query.Query = @"<Where><IsNull><FieldRef Name='MessageID' /></IsNull></Where>" 
+1

Jak u licha znasz ten typ rzeczy? :) ale dzięki! –

+0

Lol - jedynym problemem jest to, że nie działa :) –

+0

Jak to nie działa? Możesz spróbować użyć instrukcji Or, sprawdzić pustą wartość AND Null? – Colin

21

Potrzebne równoważnym String.IsNullOrEmpty(Description). Zakończyła się w ten sposób:

<And> 
    <IsNotNull> 
    <FieldRef Name='Description' /> 
    </IsNotNull> 
    <Neq> 
    <FieldRef Name='Description' /> 
    <Value Type='Text'></Value> 
    </Neq> 
</And> 
+3

zauważ, że to neguje IsNullOrEmpty przed kopiowaniem i wklejaniem;) –

7

Zgadzam się z Colinem, a coraz częściej stosowane warunek są następujące:

1. Null: 
<Where><IsNull><FieldRef Name="CustomField" /></IsNull></Where> 
2. Not Null: 
<Where><IsNotNull><FieldRef Name="CustomField" /></IsNotNull></Where> 
3. Equal: 
<Where><Eq><FieldRef Name="CustomField" /><Value Type="Text">MatchValue</Value></Eq></Where> 
4. Not Equal: 
<Where><Neq><FieldRef Name="CustomField" /><Value Type="Text">MatchValue</Value></Neq></Where> 
5. Greater Than: 
<Where><Gt><FieldRef Name="CustomField" /><Value Type="Text">1</Value></Gt></Where> 
6. Greater Than And Equal: 
<Where><Geq><FieldRef Name="CustomField" /><Value Type="Text">1</Value></Geq></Where> 
7. Lower Than: 
<Where><Lt><FieldRef Name="CustomField" /><Value Type="Text">1</Value></Lt></Where> 
8. Lower Than And Equal: 
<Where><Leq><FieldRef Name="CustomField" /><Value Type="Text">1</Value></Leq></Where> 
9 Begin With: 
<Where><BeginsWith><FieldRef Name="CustomField" /><Value Type="Text">StartString</Value></BeginsWith></Where> 
10: Contains: 
<Where><Contains><FieldRef Name="CustomField" /><Value Type="Text">ContainString</Value></Contains></Where> 

Uwaga: Więcej informacji można znaleźć na stronie: http://msdn.microsoft.com/en-us/library/ms467521.aspx Jest całkowicie Caml Zapytanie Schema .

nadzieję, że może pomóc ~

Powiązane problemy