2009-08-27 20 views
5

Wie kann ich überprüfen, ob eine Liste ein Element enthält ... wirklich nur Interesse an der Überprüfung von 1 Feld, nicht jedes einzelne Feld in der Liste.SharePoint: Überprüfen, ob Element in einer Liste vorhanden ist, Mindestaufwand

Wie kann dies auf die effizienteste Art und Weise getan werden, eine SPListItemCollection erstellen und durch diese Prüfung auf eindeutige Werte überprüfen wird wirklich die CPU-Nutzung flatline ... Sicher muss es einen Weg, dies zu tun, ohne durch zu tun jeder Artikel in der Liste?

Antwort

11

Hier ist eine gute comparison of techniques von Waldek Mastykarz.

Die allgemeine Regel ist die Verwendung von SPQuery. Weitere Details finden Sie unter SharePointDevWiki. Hier ist ein einfaches Beispiel:

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 
} 

Ein paar Anmerkungen über SPQuery:

  • Wenn Sie Ihre Abfrage falsch, kann es alle Antworten zurückgeben, anstatt einen Fehler geben
  • Wenn Sie Ihre Abfrage falsch es kann manchmal eine nicht hilfreich/irreführende Fehler
  • Achten Sie darauf, den Wert Typ

Speichern korrekt erhalten geben selbst eine Menge Probleme mit einem Werkzeug wie U2U CAML Builder (Windows oder Web Versionen - Web ist besser IMHO) oder Stramit CAML Viewer zu bauen und Ihre Abfragen testen.

+0

Danke nochmal Alex –

Verwandte Themen