2009-08-27 45 views
5

如何檢查列表是否包含項目...真的只對檢查1個字段感興趣,而不是檢查列表中的每個字段。SharePoint:檢查項目是否存在於列表中,最小開銷

這怎麼能以最有效的方式完成,創建一個SPListItemCollection並通過這個來檢查唯一值是否真的會使CPU使用率變得平坦......當然,必須有一種方法來做到這一點,列表中的每個項目?

回答

11

這是來自Waldek Mastykarz的comparison of techniques

一般規則是使用SPQuery。有關更多詳細信息,請參閱SharePointDevWiki。這裏有一個簡單的例子:

SPList list = SPContext.Current.Web.Lists["Some List"]; 
SPQuery query = new SPQuery(); 
query.Query = @" 
    <Where> 
     <Eq> 
      <FieldRef Name='SomeField' /> 
      <Value Type='Text'>Value To Match</Value> 
     </Eq> 
    </Where>"; 
SPListItemCollection found = list.GetItems(query); 
if (found.Count > 0) 
{ 
    // Do something 
} 

約SPQuery的幾個注意事項:

  • 如果你得到你的查詢錯誤,它可以返回,而不是給了一個錯誤
  • 所有的答案。如果你得到你的查詢錯誤,它有時會給出一個無用/誤導性錯誤
  • 確保你得到的值類型正確

保存使用諸如U2U CAML Builder(WindowsWeb版本 - Web更好的恕我直言)或Stramit CAML Viewer來構建和測試您的疑問,您自己會遇到很多麻煩。

+0

再次感謝亞歷克斯 – 2009-08-27 11:42:22

相關問題