日期:2014-05-18 浏览次数:20518 次
public void ExecuteTransaction(string connectionString) { using (OleDbConnection connection = new OleDbConnection(connectionString)) { OleDbCommand command = new OleDbCommand(); OleDbTransaction transaction = null; // Set the Connection to the new OleDbConnection. command.Connection = connection; // Open the connection and execute the transaction. try { connection.Open(); // Start a local transaction transaction = connection.BeginTransaction(); // Assign transaction object for a pending local transaction. command.Connection = connection; command.Transaction = transaction; // Execute the commands. command.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"; command.ExecuteNonQuery(); command.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"; command.ExecuteNonQuery(); // Commit the transaction. transaction.Commit(); Console.WriteLine("Both records are written to database."); } catch (Exception ex) { Console.WriteLine(ex.Message); try { // Attempt to roll back the transaction. transaction.Rollback(); } catch { // Do nothing here; transaction is not active. } } // The connection is automatically closed when the // code exits the using block. } }
------解决方案--------------------
也可以使用存储过程.
------解决方案--------------------
可以的,只要在同一个事务下任何操作失败都会使所有操作回滚
------解决方案--------------------
SqlTransaction trans = new SqlTransaction(); SqlCommand cmd = new SqlCommand("insert into aaa...", conn); cmd.Transaction = trans;
------解决方案--------------------
可以的
------解决方案--------------------
没问题
------解决方案--------------------