-- 自动编号突然失效
在datarowadded中的代码
Dim cmd As New SQLCommand
Dim dt As Date
cmd.C
cmd.CommandText = "Select GetDate()" \'从远程数据库获取日期信息
dt = cmd.ExecuteScalar()
e.DataRow("日期") = dt
Dim d As Date = e.DataRow("日期")
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim fd As Date = New Date(y,m,1) \'获得该月的第一天
Dim ld As Date = New Date(y,m,Days) \'获得该月的最后一天
Dim bh As String ="HP"& Format(d,"yyMM") \'生成货品编号的前6位,2位字符,2位年,2位月.
e.DataRow.save \'***必须在sqlcompute前先保存,才能获得当前行的真实的_identify值***
If e.DataRow("货品编号").StartsWith(bh) = False \'如果货品编号的前6位不符
Dim max As String
Dim idx As Integer
max = e.DataTable.sqlCompute("Max(货品编号)","[日期] >= \'" & fd & "\' And [日期] <= \'" & ld & "\'And [_Identify] <> " & e.DataRow("_Identify")) \'取得该月的最大货品编号
If max > "" Then \'如果存在最大货品编号
idx = CInt(max.Substring(6,4)) + 1 \'获得最大货品编号的后四位顺序号,并加1
Else
idx = 1 \'否则顺序号等于1
End If
e.DataRow("货品编号") = bh & Format(idx,"0000")
e.DataRow.save
End If
发布的程序,至昨天之前使用还是正常的,能够自动增加编号,但今天就始终无法自动增加。同样的功能另外的表自动编码又是正常的。不知道是不是SQL SERVER那边的问题。