Foxtable(狐表)用户栏目专家坐堂 → 利用临时表修改数据问题,代码运行正常,但数据没有改变,不知什么原因,请帮忙分析一下。


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

主题:利用临时表修改数据问题,代码运行正常,但数据没有改变,不知什么原因,请帮忙分析一下。

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


加好友 发短信
等级:幼狐 帖子:62 积分:614 威望:0 精华:0 注册:2013/9/5 15:36:00
利用临时表修改数据问题,代码运行正常,但数据没有改变,不知什么原因,请帮忙分析一下。  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/31 16:27:00 [只看该作者]

例子要怎么操作?

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


加好友 发短信
等级:幼狐 帖子:62 积分:614 威望:0 精华:0 注册:2013/9/5 15:36:00
  发帖心情 Post By:2014/3/31 16:30:00 [只看该作者]

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

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

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/31 16:34:00 [只看该作者]

经过测试,代码没问题正常执行.

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



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


加好友 发短信
等级:幼狐 帖子:62 积分:614 威望:0 精华:0 注册:2013/9/5 15:36:00
  发帖心情 Post By:2014/3/31 16:49:00 [只看该作者]

重新加载、同步、退出重新进入都没有数据改变。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:62 积分:614 威望:0 精华:0 注册:2013/9/5 15:36:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/31 17:14:00 [只看该作者]

在最后DT.Save 看看 

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


加好友 发短信
等级:幼狐 帖子:62 积分:614 威望:0 精华:0 注册:2013/9/5 15:36:00
  发帖心情 Post By:2014/3/31 17:23:00 [只看该作者]

试了,有符合条件的数据,但是物料信息表和维护LIS库存表数据都没有改变。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/31 17:26:00 [只看该作者]

不要保存行, 改为

在最后输入

dt.save
dt1.save

 回到顶部
总数 14 1 2 下一页