采用“网络环境下的复杂编号”章节内容,
为测试项集新增行时,功能测试号自动加1,如下代码可以实现自动加1,但是在表Number_List中,没有新增行,没有更新。
Dim dr As DataRow = e.DataRow
If dr.RowState <> DataRowState.Added Then '如果不是新增行
Return '那么返回
End If
Dim key As Integer
Dim cmd As New SQLCommand
cmd.C '设置数据源名称
cmd.CommandText = "Select Max(Number) from {Number_list}"
Do
key = cmd.ExecuteScalar
cmd.commandText = "Update [Number_list] Set [Number] = " & (key + 1) & ""
If cmd.ExecuteNonQuery() > 0 Then '更新顺序号
Exit Do '更新成功则退出循环
End If
Loop
e.DataRow("功能测试号") = key
MessageBox.show(key)
但是写入以下代码后,会从0开始编号,在表Number_List中,也没有新增行,也没有更新。怎么回事呢?
Dim dr As DataRow = e.DataRow
If dr.RowState <> DataRowState.Added Then '如果不是新增行
Return '那么返回
End If
Dim cmd1 As New SQLCommand
Dim cmd2 As New SQLCommand
Dim Key As Integer
cmd1.C '设置数据源名称
cmd2.C
cmd1.commandText = "Select Max(Number) from {Number_list}"
Key = cmd1.ExecuteScalar() '从后台获得顺序号
If cmd1.ExecuteScalar > 0 Then '如果编号表不存在前缀的行,那么增加一行
cmd1.commandtext = "Insert Into Number_List (Number) Values('" & key + 1 & "')"
cmd1.ExecuteNonQuery
End If
Do
Key = cmd1.ExecuteScalar() '从后台获得顺序号
cmd2.commandText = "Update [Number_list] Set [Number] = " & (Key + 1) & ""
If cmd2.ExecuteNonQuery() > 0 Then '更新顺序号
Exit Do '更新成功则退出循环
End If
Loop
e.DataRow("功能测试号") = key

此主题相关图片如下:01.jpg


此主题相关图片如下:02.jpg


此主题相关图片如下:03.jpg
[此贴子已经被作者于2014-6-16 17:05:28编辑过]