如何在远程数据库上直接递增一个整数的值。
代码如下:
Dim pcid As Integer '定义一个整数型变量:批次号
Dim c md As New SQLCommand
cmd.C '设置数据源名称
cmd.C ommandText = "Select 最大号 f rom {排号表} where 类型 = '批次' "
pcid = cmd.E xecuteScalar() '返回当前批次的值
pcid = pcid + 1 '把该值递增1
cmd.C ommandText = "UP DATE {排号表} SET 最大号 = " & pcid & " WHERE 类型 = '批次'" '直接在后台更新递增后的批次号
cmd.E xecuteNonQuery()
设计的意图如下:
为避免多用户同时进行相同操作导致批次号相同,保存时先在“排号表”中取一个号,再把这个号递增,然后就用递增的这个号,别的用户就不能再用这个号了。
但测试的时候,如果同时处理多行数据,以上代码是先取号回来,在用户电脑上递增后,再下一个修改远程数据表的命令,这里存在一个网络延时,实际测试时会出现大家用了相同的号。
请教老师,如何一步在后台递增这个值,然后返回这个值?
或者有没有什么变通的方法,让不同用户每次都领一个新的号?
[此贴子已经被作者于2017/11/18 20:01:21编辑过]