下面我将为您详细讲解“C#执行SQL事务用法实例”的完整攻略。
什么是SQL事务?
SQL事务是保证多个数据库操作在逻辑上是一个整体,要么全部执行成功,要么全部执行失败的机制,当事务执行失败时,需要回滚到之前的状态。在C#中,执行SQL事务可以使用SqlTransaction
类。
如何在C#中执行SQL事务?
SQL事务可以分为3个步骤:
1.打开与数据库的连接
首先需要打开与数据库的连接,通过SqlConnection
类连接数据库。
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
}
2.开启事务
在连接打开后,通过SqlTransaction
的BeginTransaction()
方法创建一个事务对象。
SqlTransaction sqlTran = connection.BeginTransaction();
3.执行事务
在事务开启后,通过SqlCommand
对象执行SQL语句。
SqlCommand command = new SqlCommand(sql, connection);
command.Transaction = sqlTran;
command.ExecuteNonQuery();
SQL事务执行成功后,通过sqlTran.Commit()
方法提交事务,如果执行过程中有任何错误,则通过sqlTran.Rollback()
方法回滚事务。
通过以上三个步骤,可以完成SQL事务的执行。下面给出两个具体的示例。
示例一
以下代码演示了如何在SQL事务中同时插入两个表的数据。
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlTransaction sqlTran = connection.BeginTransaction();
try
{
string sql1 = "INSERT INTO Table1 (Col1, Col2) VALUES (1, 2)";
SqlCommand command1 = new SqlCommand(sql1, connection, sqlTran);
command1.ExecuteNonQuery();
string sql2 = "INSERT INTO Table2 (Col1, Col2) VALUES ('A', 'B')";
SqlCommand command2 = new SqlCommand(sql2, connection, sqlTran);
command2.ExecuteNonQuery();
sqlTran.Commit();
}
catch (Exception ex)
{
sqlTran.Rollback();
Console.WriteLine(ex.Message);
}
}
示例二
以下代码演示了如何在SQL事务中执行存储过程。
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlTransaction sqlTran = connection.BeginTransaction();
try
{
SqlCommand command = new SqlCommand("ProcName", connection, sqlTran);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@Param1", value1);
command.Parameters.AddWithValue("@Param2", value2);
command.ExecuteNonQuery();
sqlTran.Commit();
}
catch (Exception ex)
{
sqlTran.Rollback();
Console.WriteLine(ex.Message);
}
}
以上两个示例,展示了C#执行SQL事务的基本用法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#执行SQL事务用法实例 - Python技术站