2011-04-20 62 views
2

我試圖從一個SharePoint列表 我試圖用匹配的名稱來獲得客戶:幫助與查詢的SharePoint(在線)Lists.GetListItems

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)完全不同。

如果我不傳遞查詢,我會從列表中獲取所有客戶。

任何想法?

在此先感謝。

回答

2

如果你想獲得完全匹配然後用公式標籤

例如從

  • 史密斯
  • 史密斯 - 瓊斯
  • 瓊斯

以下名稱

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

將返回

  • 史密斯

如果你想返回包含字符串,則使用的名稱包含標籤

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

將返回

  • 史密斯 - 瓊斯
  • 瓊斯

看一看在U2U CAML生成器

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

+0

是啊,我才意識到我可以用公式,但包含比較好,謝謝。良好的聯繫,Gt和Lt代表什麼? – Nick 2011-04-20 10:33:15

+0

大於和小於通常適用於基於數字的查詢。 – statto 2011-04-20 11:10:12