帮助中的“网络环境复杂编号”代码稍加修改后如下,今天突然有3条数据串了,经检查“编号”表发现:本来“表名”列有“借款”这个表名,不知为什么又增加了一行相同的表名“借款”,编号从1开始了。删除这行后又正常了。。。为什么呢?“借款”这个表名很难找到么?之前都挺好的,今天突然出这个错,代码有问题?请高手帮我完善下,避免以后再出这个错误。
If e.DataTable.Datacols.Contains("编号") Then
Dim cmd1 As New SQLCommand
Dim cmd2 As New SQLCommand
Dim Key As Integer
Dim nm As String = e.DataTable.name
cmd1.C '设置数据源名称
cmd2.C
cmd1.commandText = "Select Count(*) From [编号] Where 表名 = '" & nm & "'"
If cmd1.ExecuteScalar = 0 Then '如果编号表不存在前缀的行,那么增加一行
cmd1.commandtext = "Insert Into 编号 (表名,序号) Values('" & nm & "',1)"
cmd1.ExecuteNonQuery
End If
cmd1.commandText = "Select [序号] From [编号] Where 表名 = '" & nm & "'"
Do
Key = cmd1.ExecuteScalar() '从后台获得顺序号
cmd2.commandText = "Update [编号] Set [序号] = " & (Key + 1) & " Where [序号] = " & Key & " And 表名 = '" & nm & "'"
If cmd2.ExecuteNonQuery() > 0 Then '更新顺序号
Exit Do '更新成功则退出循环
End If
Loop
e.DataRow("编号") = key
End If