以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  下面的代码可以改为以不新增行的方法执行吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=33579)

--  作者:comnets
--  发布时间:2013/5/21 10:26:00
--  下面的代码可以改为以不新增行的方法执行吗?
Tables("A表).Sort = "社区统计 DESC"

Dim Cols1() As String = {"社区","社区统计"}
Dim Cols2() As String = {"社区","社区统计"}
For Each dr1 As Row In Tables("A表").Rows
    Dim dr2 As Row = Tables("B表").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next

先将A表按照社区统计排序,然后在B表内新增,把排序后的表A的“社区”、“社区统计”的内容复制到表B的“社区”、“社区统计”里去。

怎样让B表不需要新增行直接把排序后的表A的“社区”、“社区统计”的内容复制到表B的“社区”、“社区统计”里去?

datarow 和 row搞错了 改一下
[此贴子已经被作者于2013-5-21 10:57:22编辑过]

--  作者:Bin
--  发布时间:2013/5/21 10:30:00
--  
怎么样个复制法?
dim i as Integer=0
For Each dr1 As DataRow In Tables("A表").DataRows
    Dim dr2 As DataRow = Tables("B表")DataRows(i)
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
  i=i+1
Next
这样? 要是行数不一致怎么办?



--  作者:don
--  发布时间:2013/5/21 10:54:00
--  

参考:数据填充器


--  作者:comnets
--  发布时间:2013/5/21 11:19:00
--  
试用了一下filler,filler只能对datatable操作,不能对table操作

f.SourceTable属性不能对tables,只能对datables。

--  作者:Bin
--  发布时间:2013/5/21 11:22:00
--  
dim i as Integer=0
For Each dr1 As DataRow In Tables("A表").DataRows
    Dim dr2 As DataRow
    if i<dataTables("B表")DataRows.Count then
    dr2= dataTables("B表").AddNew()
    else
    dr2= Tables("B表")DataRows
   end if
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
  i=i+1
Next
[此贴子已经被作者于2013-5-21 11:22:43编辑过]

--  作者:comnets
--  发布时间:2013/5/22 9:30:00
--  
Dim i As Integer=0

For Each dr1 As Row In Tables("表A").Rows
    Dim dr2 As Row
    If i< Tables("表A").Rows.Count Then
        dr2= Tables("表B").AddNew()
    Else
        dr2= Tables("表B").Rows(i)
    End If
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
    i=i+1
Next


出现错误,错误提示为:

变量i在封闭块中隐藏变量
错误代码:For i as a Interger = 0 To Cols1.Lenth -1

--  作者:Bin
--  发布时间:2013/5/22 9:31:00
--  
你又2个I变量了.删掉一个.不要硬套
--  作者:comnets
--  发布时间:2013/5/22 10:13:00
--  
For i As Integer = 0 To Cols1.Length -1
这句怎么改啊?

--  作者:Bin
--  发布时间:2013/5/22 10:16:00
--  
Dim i As Integer=0

For Each dr1 As Row In Tables("表A").Rows
    Dim dr2 As Row
    If i< Tables("表A").Rows.Count Then
        dr2= Tables("表B").AddNew()
    Else
        dr2= Tables("表B").Rows(i)
    End If
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
    i=i+1
Next
红色部分意义何在?为什么不去掉.I重复了.  黄色标注部分,你改为R或者N 其他的不就好了吗?