C#中实现事务
C#中实现事务控制需要使用数据库事务,可以通过ADO.NET来实现。下面是一个示例代码,演示如何在C#中使用事务控制来确保数据库的一系列操作要么全部成功,要么全部回滚。
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Your Connection String"; // 替换成你的数据库连接字符串
// 在事务中执行一系列数据库操作
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlTransaction transaction = connection.BeginTransaction();
try
{
// 执行一系列数据库操作
InsertData(connection, transaction, "Table1", "Value1");
UpdateData(connection, transaction, "Table2", "Value2");
DeleteData(connection, transaction, "Table3");
// 所有操作成功,提交事务
transaction.Commit();
Console.WriteLine("事务成功提交");
}
catch (Exception ex)
{
// 发生异常,回滚事务
transaction.Rollback();
Console.WriteLine("事务回滚:" + ex.Message);
}
}
}
static void InsertData(SqlConnection connection, SqlTransaction transaction, string tableName, string value)
{
SqlCommand command = connection.CreateCommand();
command.Transaction = transaction;
command.CommandText = $"INSERT INTO {tableName} (Column1) VALUES (@value)";
command.Parameters.AddWithValue("@value", value);
command.ExecuteNonQuery();
}
static void UpdateData(SqlConnection connection, SqlTransaction transaction, string tableName, string value)
{
SqlCommand command = connection.CreateCommand();
command.Transaction = transaction;
command.CommandText = $"UPDATE {tableName} SET Column1 = @value";
command.Parameters.AddWithValue("@value", value);
command.ExecuteNonQuery();
}
static void DeleteData(SqlConnection connection, SqlTransaction transaction, string tableName)
{
SqlCommand command = connection.CreateCommand();
command.Transaction = transaction;
command.CommandText = $"DELETE FROM {tableName}";
command.ExecuteNonQuery();
}
}
以上代码中,首先创建一个数据库连接,然后开启一个事务。在事务中执行一系列数据库操作,例如插入数据、更新数据和删除数据等。如果发生任何异常,事务会被回滚,所有操作都会被撤销。如果所有操作都成功执行,事务会被提交,将对数据库的更改永久保存。
请注意,以上代码使用的是SQL Server数据库,你需要将connectionString
变量替换为你自己的数据库连接字符串,并根据需要更改SQL语句和参数。
原文地址:https://blog.csdn.net/qq_34207898/article/details/143092024
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!