我有一个查询在使用任何 CAML 查询生成器时都在工作,当在 c# 中将它用于 SharePoint Web 部件时,它总是不返回任何结果。
using (SPWeb ThisWeb = ThisSite.OpenWeb())
{
IList<Tweet> Tweets = GetTweets(item["Mode"].ToString(), item["String"].ToString(), LastTweet, ThisSite);
SPList ThisList = ThisWeb.Lists.TryGetList(Variables.TwitterTweetList);
foreach (var tweet in Tweets)
{
SPListItemCollection itms = ThisList.GetItems(new SPQuery() { Query = @"<Where>" +
"<Eq>" +
"<FieldRef Name=""Title"" />" +
"<Value type=""Text"">" + tweet.tweetID.ToString() + "</Value>" +
"</Eq>" +
"</Where>"
});
if (itms.Count == 0)
{
// add the tweet to 'ThisList'
}
}
}
进入代码,你会看到 tweet.tweetID.ToString() 是 "337958304577892353"
运行此代码时,它返回零项。
在 U2U builder 或任何其他 CAML 查询中运行查询时,它返回 1(如果代码运行不止一次,则返回 2、3、4 等)。
查询在 U2U builder 中运行:
<Query>
<Where>
<Eq>
<FieldRef Name="Title" />
<Value type="Text">"337958304577892353"</Value>
</Eq>
</Where>
</Query>
(是的,在 SharePoint 中执行 CAML 时,您删除了标签……我还有 3 个其他查询可以正常工作……就是这个。)