问题描述
我用c#做了一个界面,其中主要有一个涉及到下单之后数量的减少。我所用的数据库是sql,每次下单之后,会有一个确认的窗口出来我是用messagebox实现的,点击确认之后就会返回到下单界面,但是商品的数目没有改变,需要从新载入,数据才会改变,我想怎么样在可以在下单之后,点击确认之后返回到下单界面的时候,就已近变了。(查看数据库也发现数据没有改变。貌似是没有执行,必须要在重兴载入再会改变)。希望有谁能够帮帮我,我也可以发具体的代码
解决方案
解决方案二:
听起来有点矛盾。数据库也没变,貌似没有执行---------------如果是这样的话,你重新加载也不应该刷新才对啊。还是代码逻辑写的有问题,单步调试查查吧。
解决方案三:
下单后,你不重新load,你怎么知道数据库商品的数量呢?如果软件只有一个客户使用,每次下单商品数量递减1不用重新load数据。。。
解决方案四:
下单确定后,数据库商品数量没发生变化,这是bug吧!?
解决方案五:
按你说的流程,是需要确定下单后,更新数据库的数量字段的值,哪么点击确定按钮之后的代码应该要执行更新数据库更新操作,更新数据库的执行成功则在本地修改显示页面的值即可。问题来了:如果是同时存在多个客户端操作,则需要对数据更新做事务操作,不然你这里在下单就会减,别的地方在入库就会加对吧,导致数据跟不上,而且你本地客户端也只能显示当前这一次的库存数据,如果要达到这个值也新,则需要定时刷新,时间又你自己业务来定。
解决方案六:
看到几位的回复的确是很有帮助,我目前还没有考虑到多人访问的问题,所有的前提都是基于单体访问。我也想过用定时刷新的方法去做,但是没有成功。我还会继续尝试的,但是我对这个问题的产生还是疑惑的。周末我把具体的代码贴出来吧,我是个初学者。都是一边学习基础,一边模仿别人的代码,希望各位朋友多多指导。
解决方案七:
引用楼主qq664781443的回复:
我用c#做了一个界面,其中主要有一个涉及到下单之后数量的减少。我所用的数据库是sql,每次下单之后,会有一个确认的窗口出来我是用messagebox实现的,点击确认之后就会返回到下单界面,但是商品的数目没有改变,需要从新载入,数据才会改变,我想怎么样在可以在下单之后,点击确认之后返回到下单界面的时候,就已近变了。(查看数据库也发现数据没有改变。貌似是没有执行,必须要在重兴载入再会改变)。希望有谁能够帮帮我,我也可以发具体的代码
我做的这个下单很奇葩,我是用了全局变量,把用户输入的数值取出来放入全局变量,把原来的数值也取出来也放入一个全局变量,然后相减就得出结果在给一个全局变量,最后在把这个变量显示出来,大致就是这个一个思路。这是我自己想的,所以比较不专业,希望能够给点意见,或者相关代码我去学习。谢谢
解决方案八:
你要是做单机程序,完全可以把信息都存放到内存里,而只在程序要退出之前保存一次数据库就行了
解决方案:
引用7楼Z65443344的回复:
你要是做单机程序,完全可以把信息都存放到内存里,而只在程序要退出之前保存一次数据库就行了
但是我想做一个数据库的后台管理,能够修改数据,而且前台显示也能够一起改变,这个是不是就需要定时刷新。希望能给点意见
解决方案:
变通一下就行了:1.使用数据库事务进行库存操作(也就是弹窗MessageBox,点击确认这个响应函数里面,调用数据库事务:库存-1,然后判断是否执行成功)。2.成功之后,不提示任何东西,在MessageBox.Show这行代码后面,对返回的窗口进行局部刷新(比如某个值重新赋值,这就实时改变了嘛。)3.如果库存操作失败,就按失败处理,比如再弹窗提示操作失败balabala