以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数据类型 ntext 和 varchar 在 equal to 运算符中不兼容  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=183472)

--  作者:cnsjroom
--  发布时间:2022/11/6 10:11:00
--  数据类型 ntext 和 varchar 在 equal to 运算符中不兼容

System.Data.OleDb.OleDbException (0x80040E14): 数据类型 ntext 和 varchar 在 equal to 运算符中不兼容。
   在 System.Data.OleDb.OleDbDataReader.ProcessResults(OleDbHResult hr)
   在 System.Data.OleDb.OleDbDataReader.NextResult()
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteScalar()
   在 Foxtable.SQLCo mm and.ExecuteScalar()

提供单位或个人  nvarchar(MAX) 是个多值字段  有类似A,B,C,D的值

 

当前代码如下:


图片点击可在新窗口打开查看此主题相关图片如下:21.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1106求助代码.txt

[此贴子已经被作者于2022/11/6 10:36:19编辑过]

--  作者:有点蓝
--  发布时间:2022/11/6 20:27:00
--  
到后台数据库把备注列列类型从ntext改为nvarchar(MAX)类型
--  作者:cnsjroom
--  发布时间:2022/11/6 21:17:00
--  回复:(有点蓝)到后台数据库把备注列列类型从ntext改...

后台  提供证据单位或个人   列  就是nvarchar(MAX)  之前是ntext然后改成了nvarchar(MAX)  还是会提示一楼错误……

且这个列 如果只有一个值的时候  又没有问题   就是在A,B……之类的值 

就会提示错误

 

sele ct * from {调取证据通知书} where 登记编号=\'" & bh & "\' and cast(提供单位或个人 as varchar(max))=\'" & s & "\' and 被调取证据人 =\'"& bdqzjr &"\' and 证据材料内容=\'"& zjclnr &"\'"

这样写法 也不行 错误提示一样

[此贴子已经被作者于2022/11/6 21:26:05编辑过]

--  作者:有点蓝
--  发布时间:2022/11/6 21:30:00
--  
如果列类型已经是nvarchar(MAX)没有必要在使用cast转换,如果不是请直接改列类型,而不是在SQL里转换。如果不是这个列的问题,请检查其它列。如果其它列都没有问题,去检查是不是连接的其它数据库