以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 将截断字符串或二进制数据。 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146131) |
||||
-- 作者:刘林 -- 发布时间:2020/2/17 9:39:00 -- 将截断字符串或二进制数据。 .NET Framework 版本:4.0.30319.1026 Foxtable 版本:2019.12.17.18 错误所在事件: 详细错误信息: 语句已终止。 将截断字符串或二进制数据。 老师服务器出现这个错误,我是网页逐个关了,宽度逐个改了还是出这个问题,查网了说把把数据类型改成nvarchar(max) 1、如操作能改成这个 2、有哪些办法来避免这个错误
|
||||
-- 作者:有点蓝 -- 发布时间:2020/2/17 11:32:00 -- 没有必要全部改为nvarchar(max),反而对性能有影响。 估计是录入的数据有问题,比如姓名设置为长度30,但是前端录入可能录入了这种数据,比如“张三 ...这里还有n个空格...”,有空格的数据导致长度不足。检查了一下数据库数据,看有没有出现后面有很多空格的数据
|
||||
-- 作者:刘林 -- 发布时间:2020/2/17 21:45:00 -- 那我用trim去了再看有不有 另外又出了个错误,这又是什么造成的叱 Exception has been thrown by the target of an invocation. This row has been removed from a table and does not have any data. BeginEdit() will allow creation of new data in this row. |
||||
-- 作者:有点蓝 -- 发布时间:2020/2/17 21:53:00 -- 意思是这行已经从表格中删除,无法再修改保存。 比如: r.delete r("第一列") = “abc” 比如SQLcommand,或者sqladdnew返回的行,保存后在进行赋值,然后有保存。请注意SQLcommand,或者sqladdnew返回的行只能保存一次,如果需再次修改,需要重新查询获取这一行数据才能重新修改。 最后提醒的是,作为服务端,最好就不要再使用表事件了。
|
||||
-- 作者:刘林 -- 发布时间:2020/2/17 22:21:00 --
老师我是只存了一次,提示就是这个里页面出的错,我不晓得是什么情况?请帮我看一下,我在一页的排问题
|
||||
-- 作者:有点蓝 -- 发布时间:2020/2/17 22:42:00 -- 2个问题 1、 sqladdnew返回的行只能保存一次,如果需再次修改,或者取值,需要重新查询获取这一行数据才能重新修改。…… pr("联系电话") =dr("电话") pr("班级")=dr("班级") pr.save() \'这里保存了 pr("学校")=e.Cookies("userdw") ‘这里再赋值就不行的,后面再使用If pr("审核锁定")=True也不行的’ …… 把保存的代码pr.save() 放到最后,确保保存后不再有其它代码使用到这个pr 2、下面这种方式返回的dr也没有判断,如果没有这个身份证的数据,这个就会出错的 dr =DataTables("用户").sqlfind("身份证号 = \'" & e.Cookies("username") & "\'") if dr isnot nothing \'没有这句判断,也容易出错 最后如果需要使用新增行的_identify,建议这样使用 dr =DataTables("用户").sqlfind("身份证号 = \'" & e.Cookies("username") & "\'") If dr IsNot Nothing Then pr = DataTables("学生库").sqlfind("身份证号 = \'" & e.Cookies("username") & "\'") If pr Is Nothing Then pr = DataTables("学生库").sqladdNew() End If pr("身份证号")= dr("身份证号") pr("姓名")=dr("姓名") pr("联系电话") =dr("电话") pr("班级")=dr("班级") pr("学校")=e.Cookies("userdw") pr.save() pr = DataTables("学生库").sqlfind("身份证号 = \'" & e.Cookies("username") & "\'") ‘重新查询这一行的数据供后面使用 If pr Is Nothing Then ‘理论上前面保存了这里查询这个身份证号码的数据应该是有的,不需要做这个判断也可以,但是仍然有可能会出现没有的情况的,比如保存失败,或者并发冲突等等,就是百万分之一的可能,也够头疼一阵子的,所以严谨的写法就应该加上判断 \'这里添加出错返回的代码, return End If wb.appendcookie("myid",pr("_identify")) …… End If |