2009-08-27 8 views
5

목록에 항목이 있는지 어떻게 확인할 수 있습니까? 목록의 모든 단일 필드가 아닌 하나의 필드 만 확인하는 것이 좋습니다.SharePoint : 최소 오버 헤드가있는 목록에 항목이 있는지 확인하십시오.

가장 효율적인 방법으로 SPListItemCollection을 만들고이를 통해 고유 한 값을 확인하는 itterating이 실제로 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 (Windows 또는 Web 버전 - 웹이 더 좋음) 또는 Stramit CAML Viewer과 같은 도구를 사용하여 을 빌드하고 쿼리을 테스트하면 많은 문제가 발생합니다.

+0

다시 한번 감사드립니다. Alex –

관련 문제