大家好,又见面了,我是你们的朋友全栈君。
transaction属性:
1.原子性:事务是一个完整的操作,事务的各元素师不可分的。
2.一致性:事务开始时和完成时,数据必须处于一致的状态。
3.隔离性:对数据进行修改的所有并发事务是彼此隔离的。
4.持久性:事务完成后,它对系统的影响是永久的。
ASP.NET使用SqlTransaction处理事务操作
SqlTransaction类是对SQL Server数据库进行事务处理的类,该类的实例由SqlConnection类实例的BeginTransaction方法创建,表示在该数据库连接实例上开始一个数据库事务,创建SqlTransaction类实例后,在程序中使用该实例的Commit方法提交事务,或者使用该类的Rollback方法回滚事务。
下面的示例创建一个 SqlConnection 和一个 SqlTransaction。此示例演示如何使用BeginTransaction、Commit 和 Rollback 等方法。出现任何错误时事务都会回滚。Try/Catch 错误处理用于处理尝试提交或回滚事务时的所有错误。
private static void ExecuteSqlTransaction(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = connection.CreateCommand();
SqlTransaction transaction;
transaction = connection.BeginTransaction("SampleTransaction");
command.Connection = connection;
command.Transaction = transaction;
try
{
command.CommandText =
"Insert into Department (ID, Name) VALUES (1, '工程部')";
command.ExecuteNonQuery();
command.CommandText =
"Insert into Users(ID, Name,DepartmentID) VALUES (1, 'xyz',1)";
command.ExecuteNonQuery();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
}
注意:在提交或回滚 SqlTransaction 时,应始终使用 Try/Catch 进行异常处理。如果连接终止或事务已在服务器上回滚,则Commit 和Rollback 都会生成InvalidOperationException
参考资料: SqlTransaction事务的用法 http://www.studyofnet.com/news/193.html
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133120.html原文链接:https://javaforall.cn