事务怎么写?

houfuzhu 2006-06-05 08:36:26
怎么dim cn as new connection里面只有一个
cn.beginTransaction事务,怎么没有回滚,还有提交
这里面的事务要怎么写呢?请大虾指教
...全文
252 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qgjqgjqgj 2006-06-08
  • 打赏
  • 举报
回复
up
哥是龙王 2006-06-08
  • 打赏
  • 举报
回复
这是我程序中的一段保存代码,比较蹩脚,你参考着看吧。
Private Sub bt_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_save.Click
'保存
If MessageBox.Show("系统将保存您提交的修改数据,您确认此操作吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.Yes Then
BM_USER.EndCurrentEdit()
If conn.State = ConnectionState.Closed Then conn.Open()
Main.SYS_transaction = conn.BeginTransaction
da_user.UpdateCommand.Transaction = Main.SYS_transaction
da_user.InsertCommand.Transaction = Main.SYS_transaction
Try
Dim ss As Integer = 0
ss = da_user.Update(DS)
Main.SYS_transaction.Commit()
MessageBox.Show("共有 " & ss.ToString.Trim & " 条操作员信息保存成功!", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
ss = Nothing
DS.Tables("USERr").Clear()
Catch ex As Exception
Main.SYS_transaction.Rollback()
MessageBox.Show("保存失败" & Chr(13) & ex.Message)
Finally
If conn.State = ConnectionState.Open Then conn.Close()
End Try
End If
End Sub
UglyPuppet 2006-06-08
  • 打赏
  • 举报
回复
Dim con As New SqlConnection("Server=localhost;User Id=sa;Password=;Database=pubs;")
Dim cmd As New SqlCommand
con.Open()
'定义事务,并调用BeginTransaction方法,将在SqlConnection内新建的事务指定给该对象
Dim trn As SqlTransaction = con.BeginTransaction
With cmd
.Connection = con
.Transaction = trn

.CommandText = "Update dbo.Employees Set Surname='Smith' Where EmployeeId=1"
.ExecuteNonQuery()

.CommandText = "Update dbo.Employees Set Surname='Jones' Where EmployeeId=2"
.ExecuteNonQuery()
End With
'我们目前还没有提交或回滚事务,实际上也没有关闭到SQL服务器的连接。这样非常不好。如果在实际的应用中出现了这种
'情形,则该事务可能仍处于运行状态,依旧占用着资源,锁定了对我们刚刚修改过的行的访问。事务将持续保持这种状态,
'直至我们显示地终止该事务,或者要等到与SQL Server的连接关闭。如果关闭SQL Server时仍有事务处于运行状态,则所有
'这些事务都将自动取消,并被回滚。
'Rollback Transaction命令可以实现两种功能:一种是回滚整个事务;而另一个则是将事务回滚到保存点。

'回滚事务
trn.Rollback()
'执行事务
trn.Commit()
'开发人员必须编写代码正确地结束事务的操作,而且应该尽早地结束事务,而不应让其继续处于运行状态。事务运行的时间
'越长,在此期间发生某种类型故障的可能行也就越大,并相应地导致事务的回滚。请尽快第结束事务,这样就可以减少发生
'以外的可能。
daisi 2006-06-05
  • 打赏
  • 举报
回复
楼主正解
swife 2006-06-05
  • 打赏
  • 举报
回复
SqlTransaction myTrans;
myTrans = Connection.BeginTransaction();
.................
myTrans.Commit();
...........
myTrans.Rollback();

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧