现在的位置: 首页 > 综合 > 正文

对数据类型而言运算符无效。运算符为 add,类型为 text。

2012年04月24日 ⁄ 综合 ⁄ 共 866字 ⁄ 字号 评论关闭

最近在开发一个文件管理系统的时候,遇到另外一个问题:本来偶在本地的数据库是SQL2008,有一个字段SharedUserId 是nvarchar(max)类型,偶在查询SQL语句中用了...WHERE SharedUserId + ',' LIKE '%2,%', 可以正常执行。后来把程序发布到买的空间服务器上,服务器上是SQL2000的数据库,因为SQL2000没有nvarchar(max)类型,所以偶改成了text类型,结果在执行同样的SQL语句时程序就报错了:

---------------------------
Microsoft Internet Explorer
---------------------------
对数据类型而言运算符无效。运算符为 add,类型为 text。(System.Exception)
---------------------------
OK  
---------------------------

于是,偶把本地的数据库字段类型也改成text,再测试,也报类似错误(偶的SQL2008是英文版的):

---------------------------
Microsoft Internet Explorer
---------------------------
The data types text and varchar are incompatible in the add operator.(System.Exception)
---------------------------
OK  
---------------------------

后来在网上搜索了一下,原来的查询语句稍微修改下(把text转换为nvarchar再执行+运算),就可以了:...WHERE SharedUserId + ',' LIKE '%2,%'换成...WHERE CAST(SharedUserId AS NVARCHAR) + ',' LIKE '%2,%' 或 WHERE CONVERT(NVARCHAR, SharedUserId) + ',' LIKE '%2,%'

抱歉!评论已关闭.