caml查询错误:无法比较或排序text,ntext和image数据类型,除非使用IS NULL或LIKE运算符

时间:2011-01-11 05:31:01

标签: sharepoint sql-order-by caml

为sharepoint字段执行orderby时。生成以下错误:

text,ntext和image数据类型无法进行比较或排序,除非使用IS NULL或LIKE运算符。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:无法比较或排序text,ntext和image数据类型,除非使用IS NULL或LIKE运算符。

CAML query orderby子句如下:

<Where>
  <And>
    <And>
      <Eq>
        <FieldRef Name='ContentType' />
        <Value Type='Choice'>Documents</Value>
      </Eq>
      <Eq>
        <FieldRef Name='UserID' />
        <Value Type='Text'>UserID_VAL</Value>
      </Eq>
    </And>
    <Neq>
      <FieldRef Name='Email' />
      <Value Type='Text'>NA</Value>
    </Neq>
  </And>
</Where>
<OrderBy>
  <FieldRef Name='Description' Ascending='TRUE'  Nullable='TRUE'/>
</OrderBy>

正在排序的字段是Description,它在列表中具有以下数据类型 说明单行文字。

解决此问题的任何方法。

提前致谢。

1 个答案:

答案 0 :(得分:0)

尝试使用多行列排序的Caml查询(注意)将产生以下错误:

“除非使用IS NULL或LIKE运算符,否则无法比较或排序text,ntext和image数据类型。”

SharePoint MultiLine或Note列作为ntext数据类型存储在内容数据库的AllUserData表中。 SQL Server无法使用text,ntext或image数据类型进行排序。解决这个问题的唯一方法是不使用CAML中的排序功能并自行对返回的数据集进行排序。

http://social.msdn.microsoft.com/forums/en-US/sharepointdevelopment/thread/c7a1e8b7-62c0-4b90-8a9b-cc7e3fa6940c