2012-06-27 14 views
14

Xin chào Tôi có một danh sách SharePoint được truy vấn cho Ứng dụng dành cho Máy tính để bàn của tôi và tôi muốn chỉ truy xuất Thành viên Hoạt động nhưng khi truy vấn tôi chỉ nhận được người dùng không hoạt động. Có gì sai với truy vấn CAML của tôi?Truy vấn CAML cho cột boolean không hoạt động

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

Tôi đã thử các sau đây cũng

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

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

Xin giúp như tôi mới để CAML.

+1

Cố gắng tìm kiếm trong google, có rất nhiều mẫu truy vấn caml trong SharePoint. Những điều bạn viết không giống như truy vấn caml – Alexander

+0

Vì một lý do nào đó mà tôi không biết, tôi chắc chắn rằng sharepoint có lỗi, vì tôi có hai cột boolean được cấu hình theo cùng một cách (cột "Returned" và cột "Đã kiểm tra") và nếu tôi sử dụng mã CAML để truy vấn spList theo cột "Đã trả lại" thì nó hoạt động, nhưng khi tôi CHỈ thay đổi mã CAML này thành truy vấn bằng cột "Đã kiểm tra", chỉ cần thay đổi tên thuộc tính thành cột "Đã kiểm tra", nơi chúng tôi chỉ đặt tên trường nội bộ, mã không mang lại cho tôi bất kỳ spListitem nào, nhưng nó sẽ trả lại một số mục. Cột lạ "A" (Đã trả lại)

Trả lời

35

Lưu cho mình một số đau buồn và sử dụng một công cụ để giúp xây dựng các truy vấn CAML như U2U's Caml Query Builder.

Bạn cần phải sử dụng 1 và 0 (không đúng và sai) trong truy vấn, vì vậy

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

Lạ lùng, đối với một số cột Boolean bạn phải đặt giá trị là "true" chứ không phải "1" - tôi chưa để tìm ra lý do tại sao – Andrey

+1

Nếu bạn giữ Type = "Integer", bạn sẽ luôn phải sử dụng 1 và 0 –

0

sử dụng các kiểu giá trị Bool và nó hoạt động với "true", "true" hoặc "tRUE"

+2

Tôi không nghĩ loại đó tồn tại, bạn có thể đăng liên kết tới tài liệu hiển thị không? –

+0

Chỉ cần sử dụng phương pháp này thông qua Caml Query Builder và nó hoạt động tốt! –

1

này làm việc cho tôi

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

Tại sao bạn nối chuỗi truy vấn như thế này? – Patric

+0

@Patric Tôi đã được dạy để làm điều đó theo cách này. – flm