2012-06-27 19 views
14

Witam Mam listę SharePoint, która ma być odpytana na moją aplikację Desktop i chcę pobrać tylko aktywnych członków, ale gdy pytałem, dostałem tylko tych użytkowników, którzy nie są aktywni. Co jest nie tak z moją kwerendą CAML?Zapytanie CAML dla kolumny logicznej nie działa

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

Próbowałem następujących także

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

i

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

Proszę o pomoc bo jestem nowy w CAML.

+1

Spróbuj wyszukać w google, istnieje wiele próbek zapytań o caml w sharepoint. Rzeczy, które napisałeś, nie wyglądają jak zapytania z kamli. – Alexander

+0

Z jakiegoś powodu, nie wiem, jestem pewien, że sharepoint ma błąd, ponieważ mam dwie kolumny boolowskie skonfigurowane w ten sam sposób (kolumna "Zwrócono" i kolumna "Sprawdzone") i jeśli użyję kodu CAML do wysłania zapytania do spList przez kolumnę "Zwrócono", to działa, ale gdy TYLKO zmienię ten kod CAML na zapytanie przez drugą kolumnę "Sprawdzono", wystarczy zmienić nazwę atrybutu na kolumna "Sprawdzono", gdzie ustawiamy tylko wewnętrzną nazwę pola, kod nie przynosi mi żadnego spListitem jako wyniku, ale powinien zwrócić niektóre elementy. bardzo dziwna kolumna "A" (zwrócona)

Odpowiedz

35

oszczędzić sobie jakiś smutek i użyć narzędzia, aby pomóc budować zapytań Caml takich jak U2U's Caml Query Builder.

Trzeba użyć 1 i 0 (nie prawda i fałsz) w zapytaniu, więc

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

Co dziwne, w przypadku niektórych kolumn typu Boolean należy podać wartość "true", a nie "1" - jestem jeszcze aby dowiedzieć się dlaczego – Andrey

+1

Jeśli zachowasz Typ = "Integer", zawsze będziesz musiał użyć 1 i 0 –

0

użyj typ wartości Bool i współpracuje z "true", "prawda" lub "true"

+2

Nie sądzę, że taki typ istnieje, czy możesz umieścić link do dokumentacji pokazującej to? –

+0

Po prostu użyj tej metody przez Caml Query Builder i działa dobrze! –

1

działa to dla mnie

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

Dlaczego łączysz ciąg zapytania w ten sposób? – Patric

+0

@Patric Nauczono mnie, że robię to w ten sposób. – flm