mysql提交和回滚_mysql事务(提交和回滚)

博客讨论了在VB.NET中如何使用MySqlTransaction进行数据库操作。作者遇到的问题是在单个数据库连接实例中,参数无法复用,影响了查询效率。为了解决这个问题,作者尝试在每个查询后处置命令对象,但未成功。博客内容涉及到在事务中执行多个查询,包括SELECT和INSERT,并在出现错误时回滚事务。示例代码展示了如何在单个事务中执行多个INSERT操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是我用于MySqlTransaction的代码,它运行得很好….

但问题是因为我使用的是mysql命令的单个实例,我必须在其中使用唯一的PARAMETER.这毁了我的查询.有没有其他方法可以做….

我尝试在每次查询后处置cmd但没有用.. 🙁

con.Open()

Dim sqlTran As MySqlTransaction = con.BeginTransaction()

Dim cmd As MySqlCommand = con.CreateCommand()

cmd.Transaction = sqlTran

Dim str As String = Nothing

Try

cmd.CommandText = "SELECT myid FROM memaster where Adate=@adate and ANo=@ano and ASource=@asrc"

cmd.Parameters.AddWithValue("@adate", txt_bpass_adate.Text)

cmd.Parameters.AddWithValue("@ano", txt_bpass_af.Text)

cmd.Parameters.AddWithValue("@asrc", txt_bpass_asource.Text)

str = cmd.ExecuteScalar()

'cmd.Dispose()'

If str Is Nothing Then

cmd.CommandText = "Insert into memaster (ADate,ANo,ASource) values (@aDate,@aNo,@aSRC)"

cmd.Parameters.AddWithValue("@aDate", txt_bpass_adate.Text)

cmd.Parameters.AddWithValue("@aNo", txt_bpass_af.Text)

cmd.Parameters.AddWithValue("@aSRC", txt_bpass_asource.Text)

cmd.ExecuteNonQuery()

End If

sqlTran.Commit()

Catch ex As Exception

Try

sqlTran.Rollback()

Catch ex1 As Exception

End Try

End Try

我实际上想在单个事务中触发超过4个查询,这样如果出现任何问题我可以回滚它…

如果有人有任何其他方法,请与我分享这个概念…

For index As Integer = 1 To 5

cmd.CommandText = "Insert into detail (ID,BNos,SNo) values (@FID1,@BNo,@SeqN1)"

cmd.Parameters.AddWithValue("@FID1", str)

cmd.Parameters.AddWithValue("@BNo", str1)

cmd.Parameters.AddWithValue("@SeqN1", txt_bpass_sqn1.Text)

cmd.ExecuteNonQuery()

Next

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值