您的位置:首页 > 数据库

c#程序对sql操作时报错数据类型 ntext 和 varchar 在 equal to 运算符中不兼容的问题

2013-09-18 10:02 344 查看
把一个数据表从 一个数据源复制到另一个数据库之后  有些char类型的字段 自动被改成了 ntext 所以报错了  

test字段为ntext类型

SQL语句:select * from A where test=’xxx’

执行之后会出现:

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

是不是值也是ntext类型就行了呢?

那把SQL语句该成:select * from A where test=convert(ntext,’xxx’)

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

解决这个问题有2种办法:

1.直接改数据库字段类型。。。。(不治本)

2.把SQL语句修改为:

select * from A where convert(nvarchar(255),test)=’xxx’

因为不管是text还是nvarchar,实体类中的影射都应该是string,因为C#只有一个string是用来表示字符串的,不过这两个数据类型在数据库中是完全不同的,所以无法在他们之间进行比较操作,尤其那个ntext,很多操作都不能做,就算是两个ntext类型,也没有办法进行比较操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐