ξσ Dicky's Blog σξ

朋友多了,寂寞卻沒少,朋友沒有了你,得到了天下最高的技術又能如何?人類的全部才能無非是時間和耐心的混合物.---巴尔扎克

Traditional Chinese

导航

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

最近在开发一个文件管理系统的时候,遇到另外一个问题:本来偶在本地的数据库是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,%'

posted on 2008-12-26 21:36  ξσ Dicky σξ  阅读(2513)  评论(1编辑  收藏  举报