以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]SQLTable表中想做到数据及时更新的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=47391)

--  作者:chnfo
--  发布时间:2014/3/9 19:06:00
--  [求助]SQLTable表中想做到数据及时更新的问题
使用场景:局域网或广域网
在一个打开窗口中有一个SQLTable表,这个表中的多列数据发生变化时,会向表A中增加行或修正为新值。
即表A中如果有符合条件的行,就修正原来一些列的值=SQLTable表中的对应列的新值
           否则,就在表A中增加行,让各列的值=SQLTable表中的对应列的新值

问题:
1、因为有多列值要填写,如果每发生一个就要去执行更新或新增操作,是否会受到网络条件的影响导致数据不能正确更新或增加行。
2、我现在的做法是这个表里的所有数据发生变化之后,用一个“执行”来做一次性操作(更新A表的数据或增加新行)
3、有没有什么办法让这一行的数据变化之后再去更新A表的数据或去增加新行?而不是这一行的数据变一个执行一次数据更新

--  作者:jspta
--  发布时间:2014/3/9 19:44:00
--  
你的1,3有点矛盾,那你怎么判断要更新?通用作法就是你第二种方案
--  作者:有点酸
--  发布时间:2014/3/9 22:58:00
--  

For Each dr1 As DataRow In DataTables("a").DataRows
    If dr1.RowState <> DataRowState.Unchanged Then
        Dim dr2 As DataRow = DataTables("b").find("条件")
        If dr2 Is Nothing Then
            dr2 = DataTables("b").AddNew()
        End If
        dr2("d1") = dr1("d1")
        dr2("d2") = dr1("d2")
        dr2("d3") = dr1("d3")
    End If
Next