为两个方法处理MySQL事务
本文关键字:方法 处理 MySQL 事务 两个 | 更新日期: 2023-09-27 18:06:31
我想使用MySQL事务回滚更改,如果任何方法失败。我在StackOverflow: MySql中提到了这个例子,插入最后一个ID问题仍然存在,但我的问题有点不同。
我有一个代码如下:
private void btnSave_Click(object sender, EventArgs e)
{
btnSave.Enabled = false;
int result1 = SaveBillDetails();
int result2 = SaveBillItems();
if ((result1 == 1) && (result2 == 1))
{
//Update old stock
UpdateStock.ReduceStock(Convert.ToInt32(txtBillNo.Text), Convert.ToDateTime(dtpBillDate.Text));
MessageBox.Show("Saved", "StockApp", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
btnSave.Enabled = true;
}
我想在SaveBillDetails和SaveBillItems被调用之前调用BeginTransaction之类的东西。这两种方法都没有使用事务。我只想在上面的代码中添加事务
可以使用System。TransactionScope与MySQL,这取决于你的目标是哪个版本的。net和你正在使用的MySQL连接器的版本-见这篇文章
请参阅关于这个问题的讨论
这是一个常见的问题,假设你完全控制你的数据访问层的设计和实现,你应该有一个方法来创建一个连接或事务,并返回它,然后你修改你的两个保存方法来接受一个事务作为参数,并在命令执行中使用它。