2012-06-27 8 views
14

Hola Tengo una lista de SharePoint que consultar para mi aplicación de escritorio y solo quiero recuperar los miembros activos, pero cuando pregunté obtuve solo los usuarios que no están activos. ¿Qué pasa con mi consulta CAML?La consulta CAML para la columna booleana no funciona

camlQuery.ViewXml = "<<"View">><Query><Where><Eq><FieldRef Name='Active'/><Value Type='Boolean'> " + true + "</Value></Eq></Where></Query></View>""; 

He intentado lo siguiente, así

camlQuery.ViewXml = "<View><Query><Where><Eq><FieldRef Name='Active'/><Value Type='Boolean'> true</Value></Eq></Where></Query></View>"; 

y

camlQuery.ViewXml = "<Query><Where><Eq><FieldRef Name='Active'/><Value Type='Boolean'> true</Value></Eq></Where></Query>"; 

Por favor, ayudar a que soy nuevo en CAML.

+1

Intenta buscar en google, hay muchas muestras de consulta de Caml en sharepoint. Las cosas que has escrito no se parecen a la consulta de caml – Alexander

+0

Por alguna razón que no sé, estoy seguro de que sharepoint tiene un error, porque tengo dos columnas booleanas configuradas de la misma manera (columna "Returned" y columna "Checked") y si uso un código CAML para consultar el spList por la columna "Returned" funciona, pero cuando SÓLO cambio este código CAML para consultar por la otra columna "Checked", simplemente cambiando el nombre del atributo al columna "Comprobado", donde establecemos el nombre del campo interno solamente, el código no me proporciona ningún spListitem como resultado, pero debe devolver algunos elementos. muy raro Columna "A" (devuelto)

Respuesta

35

ahorrar un poco de dolor y usar una herramienta para ayudar a construir consultas CAML como U2U's Caml Query Builder.

Es necesario utilizar 1 y 0 (no es cierto y falso) en la consulta, por lo

<Query><Where> 
    <Eq><FieldRef Name="Active" /><Value Type="Boolean">1</Value></Eq> 
</Where></Query> 
+2

Curiosamente, para algunas columnas booleanas debe poner el valor como "verdadero" y no como "1": todavía estoy para averiguar por qué – Andrey

+1

Si mantiene Type = "Integer", siempre tendrá que usar 1 y 0 –

0

utilice el valor de tipo Bool y funciona con el "verdadero", "True" o "verdadero"

+2

No creo que exista ese tipo, ¿puede publicar un enlace a la documentación que lo muestra? –

+0

¡Simplemente use este método a través de Caml Query Builder y funciona perfectamente! –

1

Esto funciona para mí

camlQuery.ViewXml = "<View>" + "<Query>" + "<Where>" + "<Eq>" + 
"<FieldRef Name='Active'/>" + " <Value Type='Boolean'>" + "1" + "</Value>" + 
"</Eq>" + "</Where>" + "</Query>" + "</View>"; 
+0

¿Por qué concatena la cadena de consulta de esta manera? – Patric

+0

@Patric Me enseñaron a hacerlo de esta manera. – flm

Cuestiones relacionadas