以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  后台取数的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19094)

--  作者:小猪鑫鑫
--  发布时间:2012/4/27 9:30:00
--  后台取数的问题

狐爸及各位高手:现有一问题请教

我在出库表的datacolchanged 的事件中写入了下面的代码

 

If e.DataCol.name ="物料编码" Then

    Dim g As new SQLCommand

    Dim dt As DataTable

    g.C

    g.CommandText ="select * from {wl物料编码表} where 代码 =\'" & e.DataRow("物料编码") & "\'"

    dt =g.ExecuteReader

    Dim dr As DataRow =dt.DataRows(0)

    If dr IsNot Nothing Then

        e.DataRow("单位") =dr("单位")

        e.DataRow("规格型号") =dr("规格型号")

        e.DataRow("品名") =dr("名称")

        e.DataRow("现有库存") =dr("实际库存")

    End If

End If

 

意思是出库时输入物料编码,系统通过SQL语句从后台提取相关的信息出来,但现在有个问题,就是现有库存这列,它不能跟随后台数据的改变而及时改变,就是说我出库同一个物品,每出一次,我的后台的实际库存已经更新了,但我在出库表中再次输入同一物料编码时,它通过SQL语句带出来的实际库存数还是没变,而我通过后台查询,我每出一次库,后台的数量是及时更新了的,请帮我看看

 


 


--  作者:小猪鑫鑫
--  发布时间:2012/4/27 9:30:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:clip_image002.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2012/4/27 9:36:00
--  

没有看懂你的代码,一般来说,库存没有必要保存,需要的时候通过代码计算即可。


--  作者:小猪鑫鑫
--  发布时间:2012/4/27 9:47:00
--  
狐爸:这段代码的意思是根据出库表中的物料编码从后台的物料表中提取数据给出库表的,每出一次物料,点击保存后,系统就自动更新了物料表中的实际库存数,这点没有问题,问题是我接连输入同一物料出库时,出库表中的现有库存数不是后台物料表中的真正及时的实际库存数,而是我系统登录时的实际库存数,我想怎么样才能从后台取得及时的库存数,麻烦您慢慢看看
--  作者:小猪鑫鑫
--  发布时间:2012/4/27 10:12:00
--  
狐爸:我想问问为什么通过SQL语句从后台提取的数据都保持在系统登录时的数据状态,而不能随着后台数据变化而变化呢,或怎么样才能让它随后台的数据变化而变化,请赐教!
--  作者:狐狸爸爸
--  发布时间:2012/4/27 10:36:00
--  

这是肯定的,SQL语句的执行是一次性的,执行得到的结果是不变的。

要最新的结果,只能每次需要库存的时候,都用SQL语句计算一次。

你可以定义一个内部函数,用于取得后台的库存,需要库存的时候,调用此函数,避免重复编码。


--  作者:小猪鑫鑫
--  发布时间:2012/4/27 11:21:00
--  

谢谢,终于明白是怎么回事了,我另做了一个刷新按扭解决这个问题,谢谢