vb.net 事务处理问题(Adapter.Update()和Sql语句组成的事务)
rmini 2017-04-02 05:55:33 Dim MyTransConn As SqlConnection = New SqlConnection("Data Source=(local);Initial Catalog=MyDoors;Integrated Security=true;User ID=sa;Password=''")
MyTransConn.Open() '事务管理,在vb.net中使用事务
Dim myTrans As SqlTransaction = MyTransConn.BeginTransaction()
'Dim command As SqlCommand = MyTransConn.CreateCommand()
Dim myCommand As SqlCommand = New SqlCommand()
myCommand.Connection = MyTransConn
myCommand.Transaction = myTrans
myCommand.CommandText = "insert into Order_Header (OrderID,TradeMark,ShiMlx,Customers,SaleMgr,TerminalNm,TerminalTel,TerminalAdd," _
& "OrderTime,DeliveryTime,Remarks,ZhiDr,ZhiDrq,OrderCritical,OrderType) values('" & Me.TextBox1.Text & "','" & Me.ComboBox1.Text & "','" & Me.ComboBox2.Text & "','" & Me.GridLookUpEdit1.Text & "','" & Me.ComboBox3.Text & "','" & Me.TextBox2.Text & "'," _
& "'" & Me.TextBox3.Text & "','" & Me.TextBox4.Text & "','" & Me.DateTimePicker1.Value & "','" & Me.DateTimePicker2.Value & "','" & Me.TextBox5.Text & "','" & UserName & "','" & Format(mydt, "yyyy-MM-dd HH:mm:ss") & "','" & Me.ComboBox4.Text & "','" & Me.ComboBox5.Text & "')"
myCommand.ExecuteNonQuery()
Dim usersqlstr1 = "SELECT max(ID) FROM Order_Header" ' where SaleMk Like '%" & Trim(Me.ComboBox1.ValueMember) & "%'
ObjDataAdpter = New SqlDataAdapter(usersqlstr1, ObjSqlConnection)
Dim objtable1 As New DataTable()
ObjDataAdpter.Fill(objtable1)
Dim i As Integer
Dim ordtmp As Integer = objtable1.Rows(0).Item(0)
If objtable1.Rows.Count > 0 Then
For i = 0 To Me.GridView1.RowCount - 1
Me.GridView1.SetRowCellValue(i, Me.GridView1.Columns("OrderID"), objtable1.Rows(0).Item(0).ToString)
Next
Else
For i = 0 To Me.GridView1.RowCount - 1
Me.GridView1.SetRowCellValue(i, Me.GridView1.Columns("OrderID"), "1")
Next
End If
sqldataadapter1.Update(table)
myTrans.Commit()
MsgBox("数据保存成功!", 64, "提示")
MyTransConn.Close()
Catch
MsgBox("错误号:" & Err.Number & "错误描述:" & Err.Description)
myTrans.Rollback()
End Try
以上事务有什么问题吗?sqldataadapter1.Update(table)执行时发生了错误,失败了,但是第一条insert into语句依然成功执行,这个事务该怎么修改?(我想要的结果是任何一个失败,另一个都不执行)