订单表在新增一行时。
在beforesavedatarow代码中用下面的代码在新增行保存时记录到日志表中
If e.DataRow.RowState = DataRowState.Added Then
xgfs = "新增"
str = "Insert Into Log (修改时间,操作者,部门,修改方式,表名,单据编号,识别号,辅助识别号,行号) Values('" & Date.Now() & "','" & MyName & "','" & MyGroup & "','" & xgfs & "','" & tb & "','" & e.DataRow(Idc) & "','" & e.DataRow(Idc1) & "','" & e.DataRow(Idc2) & "'," & e.DataRow("_Identify") & ")"
SQLLIST.Add(str)
end if
是通过调用下面的事务函数来统一执行的,
Dim SqlList As List(of String) = Args(0)
Try
Connections(Mydata).BeginTransaction() '开始事务
Dim cmd As new SQLCommand
cmd.ConnectionName = Mydata
For Each sql As String In SqlList
cmd.CommandText = sql
cmd.ExecuteNonQuery()
Next
Connections(Mydata).Commit() '提交事务
sqlList.Clear() '清空集合
Return "OK"
Catch ex As Exception
Connections(Mydata).Rollback() '回滚事务
msgbox(ex.tostring) '返回错误信息
sqlList.Clear() '清空集合
Return "NG"
End Try
问题是:Log记录表中却记录了这条新增的记录,但记录"_Identify"的行号列的值却0;而在后台数据据订单表中查不到这条记录,按上面的事物应该如果新增订单表不成功,那Log中的记录也会回滚也没有才对,为什么会这样,并且“_Identify”为什么会有等于0的情况?
谢谢!