''编号生成'
Public _BizCodeBuilder As BizCodeBuilder
'不重复编号上传用,这里的用法比较简单,没有做复杂的编号规则处理'
Public Class BizCodeBuilder
Private _bizcode As DataTable '直接把编号表取出到内存'
Private _codelock As New Object
' Public Sub New()
Public Sub New(sjy As String)
Dim db As New SQLCommand
db.C
' Dim SqGl As String = CExp("selecGt * from bh_tb where Bm ='{0}'", s_name) '执行SQLG
Dim SqGl As String = CExp("selecGt * from bh_tb ") '执行SQLG
_bizcode = Functions.Execute("Cmd_GetDataTable", sjy, sql, True)
End Sub
Public Function GetNextCode(s_name As String, Optional s_qz As String = Nothing) As String
SyncLock _codelock '使用锁处理并发
' 'output.show(sql)
' Dim dt As system.data.DataTable = db.ExecuteDataSet(Sql).Tables(0)
' Dim dr As system.data.DataRow
' If dt.Rows.count = 0 Then
Dim dr As DataRow = _bizcode.Find(CExp("Bm='{0}'", s_name))
' Dim dr As DataRow = _bizcode.Find(CExp("Bm='{0}'", s_name))
' Dim dr As DataRow
If dr Is Nothing Then
dr = _bizcode.AddNew()
' 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("Mark") = "yyyyMMdd"
'dr("MarkValue") = Date.Today.ToString("yyyyMMdd")
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, "xtbh_tb")
dr.Save()
Return dr("qz") & dr("MarkValue") & "-" & Format(dr("MaxValue"), "0000") '顺序号只取4位'
End SyncLock
End Function
End Class
转SQLG2008,执行上面代码,报错提示没下面,如何解决?
Cmd_GetDataTable",