C# 如何对两个表使用事务?
如何对两个表使用事务C# 如何对两个表使用事务?,c#,C#,如何对两个表使用事务 例如,我们有两个表(main和detail),当我在主表中插入一条记录时,可能会使用For循环详细插入一些记录(多条记录)。我需要控制两个表,并按时执行事务。在连接上使用事务: IDbConnection someConnection = new .... var transaction = someConnection.BeginTransaction(TransactionScope.Serializable); try { IDbCommand cmd =
例如,我们有两个表(main和detail),当我在主表中插入一条记录时,可能会使用For循环详细插入一些记录(多条记录)。我需要控制两个表,并按时执行事务。在连接上使用事务:
IDbConnection someConnection = new ....
var transaction = someConnection.BeginTransaction(TransactionScope.Serializable);
try
{
IDbCommand cmd = someConnection.GetCommand();
cmd.Transaction = transaction;
...
cmd.ExecuteNonQuery();
foreach(var data in subdata)
{
IDbCommand subcmd = someConnection.GetCommand();
subcmd.Transaction = transaction;
...
subcmd.ExecuteNonQuery();
}
...
transaction.Commit();
}
catch(Exception e)
{
transaction.Rollback();
}
在Commit()
上,将写入所有数据。在Rollback()
上,不会写入单个数据行。因此,如果在写入子数据时发生了什么情况,您可以回滚整个事务,也可以回滚到主
中,也可以回滚到写入的详细
表数据中。您可以使用
var transaction = sqlConnection.BeginTransaction();
方法,用于启动事务,然后执行查询以插入到所需的表中,然后调用transaction.Commit()代码>,如果出现异常,则调用transaction.RollBack()代码>
考虑到sqlConnection是您的数据库连接变量通常的注释如下。你试过什么?你找了什么?