2009-08-27 10 views
5

Bir listenin bir öğe içerip içermediğini nasıl kontrol edebilirim ... gerçekten sadece 1 alanı kontrol etmekle ilgileniyor, listede her bir alanı değil.SharePoint: Listenin bir listede var olup olmadığını kontrol edin, minimum yükü

Bu nasıl en verimli şekilde gerçekleştirilebilir, SPListItemCollection yaratılır ve benzersiz değerler olup olmadığını kontrol etmek için bu işlemin gerçekleştirilmesi gerçekten cpu kullanımını düzleştirecektir ... Şüphesiz, bu işlemin üzerinden geçiş yapmanın bir yolu olmalıdır. listedeki her öğe?

cevap

11

Burada, Waldek Mastykarz'dan bir iyi comparison of techniques.

Genel kural SPQuery'yi kullanmaktır. Daha fazla bilgi için bkz. 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 
} 

Birkaç SPQuery hakkında notlar:

  • Eğer sorgu yanlış alırsanız sorgu yanlış olsun, bunun yerine bir hata
  • veren tüm cevapları dönebilirsiniz Burada temel bir örnek bazen doğru Değeri Tür olsun emin olun yararsızdır/yanıltıcı hatayı
  • verebilir

kaydet U2U CAML Builder (Windows veya Web sürümleri - Web daha iyi IMHO) veya oluşturmak ve sorgularınızı test etmek için Stramit CAML Viewer gibi bir araç kullanarak kendinize çok fazla sorun.

+0

Tekrar teşekkürler Alex –

İlgili konular