Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
好久没来了,有个小问题请教下
DataTables("表A").DataRows.clear
For i As Integer = 0 To 4
If i = 0 Then
Dim nr As DataRow = DataTables("表A").AddNew
nr("第一列") = i
Else
Dim drs As List(of DataRow) = DataTables("表A").Select("第一列 = "& i-1 &"")
For j As Integer = 0 To drs.count - 1
Dim nr As DataRow = DataTables("表A").AddNew
nr("第一列") = i
nr("第二列") = j
Next
End If
Next
1.循环语句的执行顺序是从里到外,还是从外到里
2.在else条件后面,为什么已经增加了nr("第二列") = j,在循环后结果总是0呢.
楼主:您好!
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.
改进的方案是什么,请建议一下
二楼的解释很清楚啊:
Dim drs As List(of DataRow) = DataTables("表A").Select("第一列 = "& i-1 &"")
得到的永远是一行,j每次都是从0循环到0,所以 nr("第二列") = j ,会使得第二列永远等于0
没有看明白你第二列要存一个什么值,而且你的drs.Count是永远等于1的。
我想达到的效果是:
i = 0时,新增记录
i = 1时,获取i= 0的记录数,
i = 2时,获取i = 1的记录数,
以此类推
i=0 要增加几行,i=1要增加几行,i =2要增加几行,规则是什么?
你现在的代码,其实不管这个 i 等于多少,都只是增加一行而已。
下载信息 [文件大小: 下载次数: ] | |
![]() |