2009-08-27 23 views
21

Ho questo CAML (lol grazie ad Alex)SharePoint: come verificare null con una query CAML?

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

Questo controlla se il valore di MessageID = String.Empty()

Quello che vorrei per controllare è null .... non stringa vuota ...

E 'possibile con CAML?

+6

Wrapping un linguaggio SQL-like interrogazione in XML: un colpo di genio, o di pura cattiveria? Tu decidi. – Juliet

+1

Funzionerebbe se fosse SQL ... ma è un altro aspetto funky (rotto) di SharePoint. SharePoint non delude mai ... –

+1

Anche tu devi amare la documentazione di Microsofts - http://msdn.microsoft.com/en-us/library/dd588322%28office.11%29.aspx - spiega tutto il resto eccetto come usare isnull. ... –

risposta

46

CAML ha l'operatore IsNull, quindi la domanda sarebbe:

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

Come mai conosci questo tipo di cose? :) ma grazie! –

+0

Lol - solo il problema è che non funziona :) –

+0

Come non funziona? Puoi provare a utilizzare un'istruzione Or, controlla i valori AND AND Null? – Colin

21

aveva bisogno di un equivalente a String.IsNullOrEmpty(Description). Finito con questo:

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

nota che è negato IsNullOrEmpty prima di copiare e incollare;) –

7

D'accordo con Colin, e più spesso utilizzato condizione sono i seguenti:

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> 

Nota: Maggiori informazioni si prega di visitare: http://msdn.microsoft.com/en-us/library/ms467521.aspx C'è il pieno Caml Query schema .

Spero che questo può aiutare a ~

Problemi correlati