以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教循环语句的执行顺序,老大请进 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=15224) |
||||
-- 作者:唐尸三摆手 -- 发布时间:2011/12/16 18:46:00 -- 请教循环语句的执行顺序,老大请进 好久没来了,有个小问题请教下 DataTables("表A").DataRows.clear
1.循环语句的执行顺序是从里到外,还是从外到里 2.在else条件后面,为什么已经增加了nr("第二列") = j,在循环后结果总是0呢. [此贴子已经被作者于2011-12-16 18:46:16编辑过]
|
||||
-- 作者:小猪鑫鑫 -- 发布时间:2011/12/16 20:21:00 -- 楼主:您好! 1、从外起步,然后再执行里,里循环执行完后,再循环外; 2、因 i =o时,执行if 后的第一段代码,这时nr("第一列") =0;当i =1时,执行ELSE后的代码,这时按select中的条件选出来的行只有一行,因为等于0的行,这时才一行,所以for j as integer =0 to drs.count -1,这句代码实际上只是0 TO 0,因为drs.count =1(此时只有一行),也就是说,j 只运行了一次,此时也还是0,所以nr("第二列")也等于0,当 i =2时,执行的也是ELSE后的代码,这时选出来的符合条件的行也只有一行,道理与前面所述一样,所以nr("第二列")总是等于0.
|
||||
-- 作者:唐尸三摆手 -- 发布时间:2011/12/16 21:57:00 -- 改进的方案是什么,请建议一下 |
||||
-- 作者:唐尸三摆手 -- 发布时间:2011/12/17 9:32:00 -- 老大在吗,帮忙看下运行过程中如何获得drs.count新增加的值呢 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/12/17 9:46:00 -- 二楼的解释很清楚啊:
Dim drs As List(of DataRow) = DataTables("表A").Select("第一列 = "& i-1 &"")
得到的永远是一行,j每次都是从0循环到0,所以 nr("第二列") = j ,会使得第二列永远等于0
没有看明白你第二列要存一个什么值,而且你的drs.Count是永远等于1的。 |
||||
-- 作者:唐尸三摆手 -- 发布时间:2011/12/17 9:55:00 -- 我想达到的效果是: i = 0时,新增记录 i = 1时,获取i= 0的记录数, i = 2时,获取i = 1的记录数, 以此类推 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/12/17 10:04:00 -- i=0 要增加几行,i=1要增加几行,i =2要增加几行,规则是什么? 你现在的代码,其实不管这个 i 等于多少,都只是增加一行而已。 [此贴子已经被作者于2011-12-17 10:04:05编辑过]
|
||||
-- 作者:唐尸三摆手 -- 发布时间:2011/12/17 10:12:00 -- 我做个小例子吧 |
||||
-- 作者:唐尸三摆手 -- 发布时间:2011/12/17 10:39:00 --
这是附件 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/12/17 11:12:00 -- 你只说如何增加行,新增行的各列的内容如何确定? |