以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于出现重复流水号的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=58995)

--  作者:audience68
--  发布时间:2014/10/27 22:22:00
--  关于出现重复流水号的问题
前面已经完成了自动生成监造流水号的代码,可是我突然发现存在问题,就是在两个人同时操作时,会出现重号,如图所示的“201501001”

此主题相关图片如下:图.bmp
按此在新窗口浏览图片
代码如下:

监造基本信息表_DataRowAdding

 

Dim bh As String = "CI" & Format(Date.Today, "yyyyMM")

Dim max As String = e.DataTable.Compute("max(监造流水号)", "监造流水号 like \'" & bh & "%\'")

Dim idx As Integer = 1

If max > "" Then

    idx = Cint(max.SubString(bh.Length)) + 1

Else

    idx = 1

End If

e.DataRow("监造流水号") = bh & format(idx, "000")


不知该如何完善啊?请高手指点!





--  作者:有点甜
--  发布时间:2014/10/27 22:33:00
--  

 DataRowAdding事件

 

Dim bh As String = "CI" & Format(Date.Today, "yyyyMM")
Dim max As String = e.DataTable.sqlCompute("max(监造流水号)", "监造流水号 like \'" & bh & "%\'")

Dim idx As Integer = 1
If max > "" Then
    idx = Cint(max.SubString(bh.Length)) + 1
Else
    idx = 1
End If

e.DataRow("监造流水号") = bh & format(idx, "000")

 

 

 DataRowAdded 事件

 

e.DataRow.Save


--  作者:audience68
--  发布时间:2014/10/27 22:52:00
--  
谢谢甜版了,问题解决,流水号不会重复了,本来我毫无头绪,看了你的代码,我理解一些,就是在每次系统生成一条流水号后马上进行保存,而每次增加一个流水号时都要再更新一次数据表。

就是这样无法保证流水号是顺序的好,出现了断号,因为多人使用时,有人可以可能会把已经生成的流水号再删除。不过这个问题不影响我表的使用,紧紧不美观而以。