2009-08-27 11 views
21

tengo unas pocas cosas CAML (lol gracias a Alex)SharePoint: ¿Cómo verificar null con una consulta CAML?

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

Esto comprueba si el valor del identificador de mensaje = String.Empty()

Lo que me gustaría para comprobar si es nulo, no .... cadena vacía ...

¿Esto es posible con CAML?

+6

Envolver un lenguaje similar a SQL consulta en XML: un golpe de genio, o la malicia pura? Tú decides. – Juliet

+1

Funcionaría si fuera SQL ... pero es otro aspecto funky (roto) de SharePoint. SharePoint nunca decepciones ... –

+1

También debe adorar la documentación de Microsoft: http://msdn.microsoft.com/en-us/library/dd588322%28office.11%29.aspx: explica todo lo demás excepto cómo usar isnull. ... –

Respuesta

46

CAML tiene el operador EsNulo, por lo que la consulta sería:

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

¿Cómo diablos conoces este tipo de cosas? :) ¡pero gracias! –

+0

Lol: el único problema es que no funciona :) –

+0

¿Cómo no funciona? ¿Podría intentar usar una instrucción O, verificar si hay valores NULOS y NULOS? – Colin

21

necesitaban un equivalente a String.IsNullOrEmpty(Description). Terminamos con esto:

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

tenga en cuenta que es negado IsNullOrEmpty antes de copiar y pegar;) –

7

acuerdo con Colin, y más a menudo utilizada condiciones son las siguientes:

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: más información, visite por favor: http://msdn.microsoft.com/en-us/library/ms467521.aspx No es el totalmente Caml consulta de esquema .

Hope esto puede ayudarle a ~

Cuestiones relacionadas