''不重复编号上传用,这里的用法比较简单,没有做复杂的编号规则处理'
Public Class BizCodeBuilder
Private _codelock As New Object
Public Sub New()
End Sub
Public Function GetNextCode(s_name As String, Optional s_qz As String = Nothing) As String
SyncLock _codelock '使用锁处理并发
Dim db = HySql.DataBaseFactory.CreateDatabase("db2")
Dim Sql As String = CExp("selecGt * from Gh_tb where Bm ='{0}'", s_name) '执行
Dim dt As system.data.DataTable = db.ExecuteDataSet(SqGl).Tables(0)
Dim dr As system.data.DataRow
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = CExp("selecGt * from Gh_tb where Bm ='{0}'", s_name) '执行
dt = cmd.ExecuteReader
_bizcode = Functions.Execute("Cmd_GetDataTable", sjy, dt, True)
If dt.Rows.count = 0 Then
dr = dt.NewRow()
dr("Bm") = s_name
dr("MaxValue") = 1
If String.IsNullOrEmpty(s_qz) Then s_qz = Date.now.ToString("mmss") & "BH"
dr("qz") = s_qz
dr("Mark") = "yyyyMM"
dr("MarkValue") = Date.Today.ToString("yyyyMM")
dr("Length") = 4
dt.Rows.Add(dr)
Else
dr = dt.Rows(0)'
'这里的处理规则是按时间进行重新编号,至于是按年,月还是日,在掩码中体现'
If dr("MarkValue") <> Date.Today.ToString(dr("Mark")) Then
dr("MaxValue") = 1
dr("MarkValue") = Date.Today.ToString(dr("Mark"))
Else
dr("MaxValue") = dr("MaxValue") + 1
End If
End If
'
db.UpdateDataTable(dt, "Gh_tb")
Return dr("qz") & dr("MarkValue") & "-" & Format(dr("MaxValue"), "0000") '顺序号只取4位'
End SyncLock
End Function
End Class
上面代码,ADO如何改为狐表内置ET?