这两种交易处理方式有何区别

第一种方法

//
const string selectSatement = @"INSERT INTO Payment....";
using (SqlTransaction sqlTrans = sqlConnection.BeginTransaction())
using (SqlCommand sqlCommand = new SqlCommand(selectSatement, sqlConnection,sqlTrans))
//
sqlTrans.commit();


第二种方法

BEGIN TRAN T1;
INSERT INTO Payment....;
COMMIT TRAN T1;

最佳答案

使用第一个选项,您可以异步使用数据库连接(多线程)。

如果您有并行线程在数据库中执行操作,而只是在其中转储BEGIN TRANSACTION,则可能会导致其他线程的查询(也包括在该事务中)也被包含进来,并在某些情况下搞砸了执行ROLLBACK

使用SqlTransaction可以确保仅将应该包含在事务中的查询包括在其中。

关于c# - 这两种交易处理方式有何区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25278333/

10-11 05:59