以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  加载错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117081)

--  作者:jackchan120925
--  发布时间:2018/4/5 21:39:00
--  加载错误
老师您好,我用到动态加载的信息,代码如下

图片点击可在新窗口打开查看此主题相关图片如下:错误代码.png
图片点击可在新窗口打开查看

执行以上代码跳出如下错误

图片点击可在新窗口打开查看此主题相关图片如下:错误提示.png
图片点击可在新窗口打开查看


请问是哪里出问题呀? 非常感谢


--  作者:有点甜
--  发布时间:2018/4/6 9:50:00
--  

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 运算符中不兼容的错误信息。


--  作者:jackchan120925
--  发布时间:2018/4/6 12:11:00
--  
这个。。。。。。没弄懂啊,我只是利用了loadfilter来进行按条件载入,并没有用到select啊,我语法上貌似也没啥问题啊?
--  作者:有点甜
--  发布时间:2018/4/6 15:52:00
--  

把你的单号列改成【字符】类型,不要用【备注】类型

 

http://www.foxtable.com/webhelp/scr/0036.htm

 

或者修改代码,如

 

"convert(varchar(255), 列名) = \'" & st & "\' or convert(varchar(255), 列名) = \'" & st & "\'"


--  作者:jackchan120925
--  发布时间:2018/4/6 16:25:00
--  
convert(varchar(255), 列名)  相当于把列的类型从<备注>修改为了<字符>对么? 那么字符的对打长度为255,如果列超过了这个长度,会被自定截短吗?
谢谢

--  作者:有点甜
--  发布时间:2018/4/6 16:39:00
--  
以下是引用jackchan120925在2018/4/6 16:25:00的发言:
convert(varchar(255), 列名)  相当于把列的类型从<备注>修改为了<字符>对么? 那么字符的对打长度为255,如果列超过了这个长度,会被自定截短吗?
谢谢

 

是的。你可以改动255为4000,基本都够用了。

[此贴子已经被作者于2018/4/6 16:39:17编辑过]

--  作者:jackchan120925
--  发布时间:2018/4/6 16:52:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20180406165029.png
图片点击可在新窗口打开查看

字符类型不是有255限制的么?还能突破这个限制的?

--  作者:有点甜
--  发布时间:2018/4/6 17:22:00
--  
以下是引用jackchan120925在2018/4/6 16:52:00的发言:

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20180406165029.png


字符类型不是有255限制的么?还能突破这个限制的?

 

没办法,超过255字符,就只能改成【备注】类型了。