2013-10-31 174 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,一切正常。