以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 求大神看看这段代码,问题在那里? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89138) |
-- 作者:18523982317 -- 发布时间: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 -- 发布时间:2016/8/16 11:31:00 -- SQLFind查找的是后台数据,保存后重新加载才可以看到。如果数据已经加载用Find就可以 |
-- 作者:18523982317 -- 发布时间:2016/8/16 13:57:00 -- 以下是引用Hyphen在2016/8/16 11:31:00的发言: SQLFind查找的是后台数据,保存后重新加载才可以看到。如果数据已经加载用Find就可以 用 find 果真可以解决了。。。我用的外部数据源accss,按道理用sqlfind可以啊。。。奇怪了
|
-- 作者:大红袍 -- 发布时间: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
|