Ich habe den folgenden Code:CAML-Abfrage gibt falsche Ergebnisse zurück?
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)
{
.
.
.
Meine Frage ist, warum muss ich die letzte if
Anweisung haben? Wenn ich dies nicht habe, wird ein Fehler ausgegeben, der besagt, dass der Bezeichner nicht existiert, wenn er versucht, oListItem["PublishToSM"]
zu tun. Dies scheint unmöglich, da meine CAML-Abfrage prüft, dass diese einen entsprechenden Wert hat ...
Ich denke, mit 'Type = 'Boolean'' und' 1' funktioniert. Der Link, auf den Sie verweisen, verwendet 'true'. –