0

运行我的应用程序时出现此错误,使用同步框架构建,离线

ntext 和 image 数据类型不能用于 WHERE、HAVING、GROUP BY、ON 或 IN 子句,除非这些数据类型与 LIKE 或 IS NULL 谓词一起使用。

我有一个保存一些测试的数据库,TestOptions。另一个持有名为 CreateScript 的测试集合。这些表用于填充要执行的测试的列表视图。

使用 Sync 框架,这些表已在本地克隆为 SQL Server CE 表。

用户选择所需的测试并将结果存储在结果表中。

填充列表视图时,会使用包含所有这三个表的两个连接来运行查询,以收集测试数据。

select 
    TestType, TestName, LowerLimits, UpperLimits 
from 
    CreateScriptTable 
inner join 
    TestOptionsTable on CreateScriptTable.TestType = TestOptionsTable.TestName 
LEFT JOIN 
    TestResultsTable on CreateScriptTable.TestType = TestResultsTable.TestName 
WHERE 
    CreateScriptTable.InstrumentType= 'type1' 
ORDER BY 
    [Index] ASC

当应用程序在线时,此查询工作正常。当应用程序处于脱机状态时,我得到上面关于nTextimage数据类型的异常。

我也得到了例外,

大对象(ntext 和 image)不能在 ORDER BY 子句中使用。

运行与上述类似的查询时。

在我的数据库中,没有包含这些数据类型的列。从四处阅读看来,和varbinary(MAX)数据nvarchar(MAX)类型分别被强制转换为本地 SQL Server CE 数据库。为了解决这个问题,我将数据类型更改为,但问题仍然存在。imagenTextnvarchar(4000)varbinary(4000)

这里有一个热修复程序,但它早于我机器上的 SQL Server CE 版本。我还没有测试它,因为我担心会弄乱我的开发环境并且非常接近需要完整的构建来演示。

我还玩弄了在内存DataTables中为每个表创建并查询这些表的想法,但这也没有成功。

目前我没有想法,非常感谢任何帮助。

4

1 回答 1

0

利用

ORDER BY CAST ([Index] as nvarchar(4000))
于 2013-01-17T14:20:36.793 回答