以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  利用临时表修改数据问题,代码运行正常,但数据没有改变,不知什么原因,请帮忙分析一下。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48546)

--  作者:hbydcwb
--  发布时间:2014/3/31 16:05:00
--  利用临时表修改数据问题,代码运行正常,但数据没有改变,不知什么原因,请帮忙分析一下。

Dim dt As DataTable

Dim cmd As New SQLCommand
cmd.CommandText = "Select [_Identify],货品代码,库存数量,单价,完成导入 From {维护LIS库存}"
dt = cmd.ExecuteReader(True)
Dim dt1 As DataTable
Dim cmd1 As New SQLCommand
cmd1.CommandText = "Select [_Identify],物料编码,实物数量,单价 From {物料信息}"
dt1 = cmd1.ExecuteReader(True)
For Each dr As DataRow In dt.DataRows
    For Each dr1 As DataRow In dt1.DataRows
If dr("货品代码") = dr1("物料编码") Then
dr1("单价") = (dr1("实物数量") * dr1("单价") + dr("库存数量") * dr("单价")) / (dr1("实物数量") + dr("库存数量"))
dr1("实物数量") = dr1("实物数量") + dr("库存数量")
dr("完成导入")  = True
\'If MessageBox.Show("结果" & vbcrlf & dr("货品代码") & vbcrlf & dr1("物料编码") & vbcrlf & dr1("实物数量") & vbcrlf & dr1("单价"),"检查",MessageBoxButtons.YesNo,MessageBoxIcon.Warning) =DialogResult.Yes Then  Return dr("完成导入")
dr.Save()
dr1.Save()
End If
Next
Next
MessageBox.Show("导入完毕!")

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入测试.foxdb


--  作者:Bin
--  发布时间:2014/3/31 16:27:00
--  
例子要怎么操作?
--  作者:hbydcwb
--  发布时间:2014/3/31 16:30:00
--  

放到事件、按钮或者命令窗口执行都行。为了实现从另外两个表导入物料的数量和单价到物料信息表里面。

[此贴子已经被作者于2014-3-31 16:33:59编辑过]

--  作者:Bin
--  发布时间:2014/3/31 16:34:00
--  
经过测试,代码没问题正常执行.

你没有执行LOAD 或者点击菜单同步表,是不会加载最新数据的.



--  作者:hbydcwb
--  发布时间:2014/3/31 16:49:00
--  
重新加载、同步、退出重新进入都没有数据改变。
--  作者:Bin
--  发布时间:2014/3/31 16:52:00
--  
可能是你没有对应的符合条件的数据,

我去掉了条件,直接为列赋值,发现是没问题的.

Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.CommandText = "Select [_Identify],货品代码,库存数量,单价,完成导入 From {维护LIS库存}"
dt = cmd.ExecuteReader(True)
Dim dt1 As DataTable
Dim cmd1 As New SQLCommand
cmd1.CommandText = "Select [_Identify],物料编码,实物数量,单价 From {物料信息}"
dt1 = cmd1.ExecuteReader(True)
For Each dr As DataRow In dt.DataRows
        dr("完成导入")=True
Next
dt.save
MessageBox.Show("导入完毕!")

--  作者:hbydcwb
--  发布时间:2014/3/31 17:12:00
--  
If MessageBox.Show("结果" & vbcrlf & dr("货品代码") & vbcrlf & dr1("物料编码") & vbcrlf & dr1("实物数量") & vbcrlf & dr1("单价"),"检查",MessageBoxButtons.YesNo,MessageBoxIcon.Warning) =DialogResult.Yes Then  Return dr("完成导入")
把这个注释去掉,可以看到是有数据的,但是没有修改。是不是两个临时表不能套用?
--  作者:Bin
--  发布时间:2014/3/31 17:14:00
--  
在最后DT.Save 看看 
--  作者:hbydcwb
--  发布时间:2014/3/31 17:23:00
--  
试了,有符合条件的数据,但是物料信息表和维护LIS库存表数据都没有改变。
--  作者:Bin
--  发布时间:2014/3/31 17:26:00
--  
不要保存行, 改为

在最后输入

dt.save
dt1.save