如何解决:数据类型 ntext 和 varchar 在not equal to 运算符中不兼容~~~ 1

 我来答
ilovemyboss
推荐于2018-02-27 · 超过21用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:36.9万
展开全部
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类型,也没有办法进行比较操作。

也可以select * from A where test like’xxx’
鲁添翼happy
2018-03-31 · TA获得超过1.3万个赞
知道小有建树答主
回答量:75
采纳率:87%
帮助的人:1.1万
展开全部

1.直接改数据库字段类型。
2.把SQL语句修改为:select * from A where convert(nvarchar(255),test)=’xxx’。

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

test字段为ntext类型

SQL语句:select * from A where test=’xxx’
执行之后会出现:
数据类型 ntext 和 varchar 在 equal to 运算符中不兼容的错误信息。
那把SQL语句该成:select * from A where test=convert(ntext,’xxx’)
结果出现:数据类型 ntext 和 ntext 在 equal to 运算符中不兼容的错误信息。


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c8b3acea7
2011-03-31 · TA获得超过365个赞
知道小有建树答主
回答量:326
采纳率:0%
帮助的人:338万
展开全部
在程序中转换。
例如:convert(varchar(1000),ntext_col)
追问
怎么操作?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式