温馨提示×

c# oledbconnection支持事务处理吗

c#
小樊
81
2024-12-06 04:37:55
栏目: 编程语言

是的,C#中的OleDbConnection对象支持事务处理。您可以使用OleDbTransaction类来管理事务。以下是一个简单的事务处理示例:

using System;
using System.Data.OleDb;

class Program
{
    static void Main()
    {
        string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=your_database.mdb";
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            connection.Open();

            // 开始事务
            OleDbTransaction transaction = connection.BeginTransaction();

            try
            {
                // 执行SQL语句
                OleDbCommand command1 = new OleDbCommand("INSERT INTO Table1 (Column1) VALUES ('Value1')", connection);
                command1.Transaction = transaction;
                command1.ExecuteNonQuery();

                OleDbCommand command2 = new OleDbCommand("UPDATE Table2 SET Column1 = 'Value2' WHERE Column2 = 1", connection);
                command2.Transaction = transaction;
                command2.ExecuteNonQuery();

                // 提交事务
                transaction.Commit();
                Console.WriteLine("Transaction committed successfully.");
            }
            catch (Exception ex)
            {
                // 如果发生错误,回滚事务
                transaction.Rollback();
                Console.WriteLine("Transaction rolled back due to an error: " + ex.Message);
            }
        }
    }
}

在这个示例中,我们首先创建一个OleDbConnection对象并打开它。然后,我们使用BeginTransaction()方法开始一个新的事务。接下来,我们执行两个SQL语句,并将事务分配给每个命令。如果所有语句都成功执行,我们使用Commit()方法提交事务。如果在执行过程中发生任何错误,我们使用Rollback()方法回滚事务。

0