Foxtable(狐表)用户栏目专家坐堂 → [求助] 求大神看看这段代码,问题在那里?


  共有1829人关注过本帖树形打印复制链接

主题:[求助] 求大神看看这段代码,问题在那里?

帅哥哟,离线,有人找我吗?
18523982317
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:852 积分:6109 威望:0 精华:0 注册:2015/12/24 13:02:00
[求助] 求大神看看这段代码,问题在那里?  发帖心情 Post By:2016/8/16 10:29:00 [只看该作者]

For Each  dr As Row In Tables("工资导入").Rows
    Dim gr As DataRow = DataTables("工资总表").SQLFind("年份 = " & dr("年份") & " And 月份 = " & dr("月份") & " And 姓名1 = '" & dr("姓名1") & "'")
    msgbox("年份 = " & dr("年份") & " And 月份 = " & dr("月份") & " And 姓名1 = '" & dr("姓名1") & "'")
    If gr IsNot Nothing  Then
        For Each dc As DataCol In DataTables("工资导入").DataCols
            If  dr.IsNull(dc.name) = False Then
                gr(dc.name) = dr(dc.name)
            End If
        Next
    Else
        Dim gr1 As Row = Tables("工资总表").AddNew
        For Each dc As DataCol In DataTables("工资导入").DataCols
            gr1(dc.name) = dr(dc.name)
        Next
    End If
Next


问题:当gr存在的时候,本来应该gr(dc.name) = dr(dc.name),但是运行后发现数据没变,但是当gr不存在的时候,运行结果正常!
        我用msgbox读取gr(dc.name)得到的结果又是正常的,但是代码运行完了,数据却没变,求解?

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/16 11:31:00 [只看该作者]

SQLFind查找的是后台数据,保存后重新加载才可以看到。如果数据已经加载用Find就可以

 回到顶部
帅哥哟,离线,有人找我吗?
18523982317
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:852 积分:6109 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/8/16 13:57:00 [只看该作者]

以下是引用Hyphen在2016/8/16 11:31:00的发言:
SQLFind查找的是后台数据,保存后重新加载才可以看到。如果数据已经加载用Find就可以

用 find  果真可以解决了。。。我用的外部数据源accss,按道理用sqlfind可以啊。。。奇怪了


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/16 14:17:00 [只看该作者]

For Each  dr As Row In Tables("工资导入").Rows
    Dim gr As DataRow = DataTables("工资总表").Find("年份 = " & dr("年份") & " And 月份 = " & dr("月份") & " And 姓名1 = '" & dr("姓名1") & "'")
    If gr Is Nothing Then
        gr = DataTables("工资总表").sqlFind("年份 = " & dr("年份") & " And 月份 = " & dr("月份") & " And 姓名1 = '" & dr("姓名1") & "'")
    End If
    If gr IsNot Nothing  Then
        For Each dc As DataCol In DataTables("工资导入").DataCols
            If  dr.IsNull(dc.name) = False Then
                gr(dc.name) = dr(dc.name)
            End If
        Next
        gr.Save
    Else
        Dim gr1 As Row = Tables("工资总表").AddNew
        For Each dc As DataCol In DataTables("工资导入").DataCols
            gr1(dc.name) = dr(dc.name)
        Next
    End If
Next

 回到顶部