明凯博客

关注网站技术,一个特立独行的程序员

数据类型ntext和varchar在equal to运算符中出错的解决办法

在数据库查询的时候经常会出现一些莫名其妙的错误,其中有一个是:
数据类型 ntext和 varchar 在equal to 运算符中不兼容的错误信息。
是不是值也是ntext类型就行了呢?
那把SQL语句该成:

1
SELECT * FROM A WHERE test=CONVERT(ntext,'xxx')

结果出现:

数据类型 ntext 和 ntext 在 equal to 运算符中不兼容的错误信息。

解决这个问题有2种办法:
1.直接改数据库字段类型。(这种是最傻瓜的办法)
2.把SQL语句修改为:

1
SELECT * FROM A WHERE CONVERT(nvarchar(255),test)='xxx'

因为不管是text还是nvarchar,实体类中的影射都应该是string,因为C#只有一个string是用来表示字符串的,不过这两个数据类型在数据库中是完全不同的,所以无法在他们之间进行比较操作。
尤其那个ntext,很多操作都不能做,就算是两个ntext类型,也没有办法进行比较操作,莫名奇妙呀。

, , , ,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注