2013-10-31 105 views
0

我試圖找回使用此查詢從列表中的項目:使用元素與SPQuery其他元素

query.Query = 
@"<Where> 
    <And> 
     <And> 
      <Geq> 
       <FieldRef Name='Date' /><Value Type='DateTime' IncludeTimeValue='TRUE'>" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(dateFrom) + @"</Value> 
      </Geq> 
      <Leq> 
       <FieldRef Name='Date' /><Value Type='DateTime' IncludeTimeValue='TRUE'>" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(dateTo) + @"</Value> 
      </Leq> 
     </And> 
     <In> 
      <FieldRef Name='Employee' LookupId='TRUE' /> 
       <Values> 
        <Value Type='int'>1</Value> 
        <Value Type='int'>3</Value> 
       </Values> 
     </In> 
    </And> 
</Where>"; 

在運行時,我得到以下異常: SPException:一個或多個字段類型不正確安裝。轉到列表設置頁面以刪除這些字段 在線List.GetItems(query)

如果我修改SPQuery這樣的:

query.Query = 
@"<Where> 
    <And> 
     <Geq> 
      <FieldRef Name='Date' /><Value Type='DateTime' IncludeTimeValue='TRUE'>" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(dateFrom) + @"</Value> 
     </Geq> 
     <Leq> 
      <FieldRef Name='Date' /><Value Type='DateTime' IncludeTimeValue='TRUE'>" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(dateTo) + @"</Value> 
     </Leq> 
    </And> 
</Where>"; 

或本:

query.Query = 
@"<Where> 
    <In> 
     <FieldRef Name='Employee' LookupId='TRUE' /> 
      <Values> 
       <Value Type='int'>1</Value> 
       <Value Type='int'>3</Value> 
      </Values> 
    </In> 
</Where>"; 

一切都可以正常使用。

回答

0

問題在於重複使用SPQuery對象,令人驚訝。所以我創建了一個新的SPQuery,一切正常。