以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 程序发生无法处理的异常错误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95135) |
||||
-- 作者:kgdce -- 发布时间:2017/1/11 2:00:00 -- 程序发生无法处理的异常错误 发生无法处理的异常错误 此主题相关图片如下:qq图片20170111015327.png Dim arys1 As List(of String) = DataTables(cmb1.text).GetValues(zd1(cmbdx(0).text)) \'记录第一分组列下有多少个不同值 Dim uuu As Integer = arys1.count-1 For kkk As Integer = val To 999+ val If kkk > uuu Then Return End If Dim na As String = arys1(kkk) \'For Each na As String In arys1 (如果只是运行时建立1000个表,程序能正常,再多时就会出现图片上的错误。关闭程序后可以再次运行这个集合下一个1000多个表,通过反复关闭程序后再运行不会出现错误,就是不能一次全部运行完,也就是如arys1这个集合只有1000个元素是可以的,但多了就会出错,关闭程序分批计算不会出错) \'建一个临时表,每一个表就作一个图 Dim dtb As New DataTableBuilder("作图") dtb.AddDef(hg1, Gettype(String), 32) For Each nayy1 As String In nay dtb.AddDef(nayy1, Gettype(Single)) Next dtb.build Dim huh As String="" Dim drs As new List(of DataRow) drs = DataTables(cmb1.text).Select("[" & hg1 & "]=\'" & na & "\'") For Each dr As DataRow In drs Dim r As Row = Tables("作图").AddNew r(hg1) = dr(hg19) For Each na1 As String In nay r(na1) = dr(na1) \'作图表中加选择的列的数据 Next If huh ="" And hg20 <> "" Then huh = dr(tyt) End If Next |
||||
-- 作者:有点蓝 -- 发布时间:2017/1/11 8:55:00 -- 代码不完整,分析不了问题。上例子看看 https://zhidao.baidu.com/question/567819397.html
|
||||
-- 作者:有点色 -- 发布时间:2017/1/11 9:13:00 -- 1、做个例子上来测试;
2、为什么要建1000个表那么变态啊,你代码肯定有问题。 |
||||
-- 作者:kgdce -- 发布时间:2017/1/11 16:41:00 -- 这个是实例,试试看
|
||||
-- 作者:有点色 -- 发布时间:2017/1/11 17:14:00 -- 根本就不需要生成一个表,你这样做是多余的。
如果要画图,你可以直接弄。请直接说你要做什么,做个实例上来。 |
||||
-- 作者:kgdce -- 发布时间:2017/1/11 21:06:00 -- 第一,我的代码没问题,但是程序运行有问题,出现了错误,就这个问题本身值得研究。 第二,换一种方式可以解决问题,可以不需要生成一个表,但是这样的话我的程序的通用性会差,对不同表,都按要求生成临时表,再根据临时表运用函数生成图,这是一种设计思路。 还是希望用第一种方式,就要弄清楚为什么在运行1000多次循环后就会错误?另外,不要纠结能不能换一种思路解决问题,而是针对给出的测试例子,已证明代码没有问题,为什么程序还会报错,在这里进行研究会更有意义?因为在设计程序时不知道用何种代码或思路能保证程序能正常运行,按理说只要依据FT的规则编写的代码都应该能正常运行才对。 [此贴子已经被作者于2017/1/11 23:02:49编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/1/12 2:44:00 -- 那你就不要循环build表格。
Dim arys1 As List(of String) = DataTables("测试").GetValues("考号") \'记录第一分组列下有多少个不同值 \'建一个临时表,每一个表就作一个图 For Each na As String In arys1 |
||||
-- 作者:kgdce -- 发布时间:2017/1/12 10:16:00 -- 的确是这样,不能反复生成临时表,如果反复生成,就会出现问题,这在编程设计时应注意的问题,从某种程度上来说,也是FT的bug. |
||||
-- 作者:兰天 -- 发布时间:2017/1/12 11:05:00 -- 越用你会发现这样的问题越多,有时非常符合FT的编码规则,但程序就是报错,官方也不怎么解决或者解决不了(尤其并不是每次均报错) [此贴子已经被作者于2017/1/12 11:05:36编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/1/12 11:07:00 -- 以下是引用兰天在2017/1/12 11:05:00的发言:
越用你会发现这样的问题越多,有时非常符合FT的编码规则,但程序就是报错,官方也不怎么解决或者解决不了
重复new和重复build,这个本身,就是非常错误的做法,本来几秒钟完成的事,增加几十倍时间和几十倍内存,连电脑都看不下去所以报错了。 |