我有以下代码:CAML查询返回错误的结果?
SPQuery oQuery = new SPQuery();
oQuery.Query = @"<Query>
<Where>
<And>
<Eq>
<FieldRef Name='PublishToSM' />
<Value Type='Boolean'>1</Value>
</Eq>
<IsNull>
<FieldRef Name='SMUpdateDate' />
</IsNull>
</And>
</Where>
</Query>";
SPListItemCollection collListItems = list.GetItems(oQuery);
NevCoSocialMedia.NevCoFacebook fb = new NevCoSocialMedia.NevCoFacebook();
foreach (SPListItem oListItem in collListItems)
{
if (oListItem.Fields.ContainsField("PublishToSM") && Convert.ToBoolean(oListItem["PublishToSM"]) == true)
{
.
.
.
我的问题是,为什么我需要有最后if
声明?如果我没有这个,它会抛出一个错误,说当它试图执行oListItem["PublishToSM"]
时标识符不存在。这似乎是不可能的,因为我的CAML查询检查有一个适当的值...
我认为使用`Type ='布尔'`和`1`可以工作。你引用的链接是使用`true`。 – 2011-01-13 15:23:44