帮助查询 SharePoint(在线)Lists.GetListItems

发布于 2024-11-03 01:05:06 字数 811 浏览 0 评论 0原文

我正在尝试从 SharePoint 列表中获取名称匹配的客户 我尝试过:

XmlDocument doc = new XmlDocument();
doc.LoadXml("<Query><Where><Lt><FieldRef Name=\"CustomerName\"/><Value Type=\"Text\">" + customerName + "</Value></Lt></Where></Query>");
XmlNode listQuery = doc.SelectSingleNode("//Query");

XmlNode n = sharePoint.listsObj.GetListItems(listName, null, listQuery, null, null, null, null);
nsmgr = new XmlNamespaceManager(n.OwnerDocument.NameTable);
nsmgr.AddNamespace("z", "#RowsetSchema");
nsmgr.AddNamespace("rs", "urn:schemas-microsoft-com:rowset");
XmlNodeList itemNodeList = n.SelectNodes("rs:data/z:row", nsmgr);

但在 itemNodeList 中,我得到一个客户,其名称与我在查询中使用的参数 (customerName) 完全不相似。

如果我不传递查询,我会从列表中获取所有客户。

有什么想法吗?

提前致谢。

I am trying to get customers with a matching name from a SharePoint list
I tried with:

XmlDocument doc = new XmlDocument();
doc.LoadXml("<Query><Where><Lt><FieldRef Name=\"CustomerName\"/><Value Type=\"Text\">" + customerName + "</Value></Lt></Where></Query>");
XmlNode listQuery = doc.SelectSingleNode("//Query");

XmlNode n = sharePoint.listsObj.GetListItems(listName, null, listQuery, null, null, null, null);
nsmgr = new XmlNamespaceManager(n.OwnerDocument.NameTable);
nsmgr.AddNamespace("z", "#RowsetSchema");
nsmgr.AddNamespace("rs", "urn:schemas-microsoft-com:rowset");
XmlNodeList itemNodeList = n.SelectNodes("rs:data/z:row", nsmgr);

But in itemNodeList I get a customer with a name that is not similar at all to the parameter (customerName) I use in the query.

If I don't pass on the query I get all customers from the list.

Any ideas?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酒几许 2024-11-10 01:05:06

如果您想获得完全匹配的名称,请使用 Eq 标签

例如,来自

  • Smith
  • Smith-Jones
  • Jones 的

以下内容

<Query><Where><Eq><FieldRef Name="CustomerName"/><Value Type="Text">Smith</Value></Eq></Where></Query>

将返回

  • Smith

如果您想返回包含该字符串的名称,则使用 Contains 标签

<Query><Where><Contains><FieldRef Name="CustomerName"/><Value Type="Text">Smith</Value></Contains></Where></Query>

将返回

  • Smith-Jones
  • Jones

有一个查看 U2U CAML Builder

http://www.u2u.net/res/Tools/CamlQueryBuilder .aspx

If you want to get names that match exactly then use the Eq tag

For example from

  • Smith
  • Smith-Jones
  • Jones

the following

<Query><Where><Eq><FieldRef Name="CustomerName"/><Value Type="Text">Smith</Value></Eq></Where></Query>

would return

  • Smith

If you want to return names that contain the string then use the Contains tag

<Query><Where><Contains><FieldRef Name="CustomerName"/><Value Type="Text">Smith</Value></Contains></Where></Query>

would return

  • Smith-Jones
  • Jones

Have a look at the U2U CAML Builder

http://www.u2u.net/res/Tools/CamlQueryBuilder.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文