SqlTransaction.Commit Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Confirma la transacción de base de datos.
public:
override void Commit();
public override void Commit ();
override this.Commit : unit -> unit
Public Overrides Sub Commit ()
Excepciones
Error al intentar confirmar la transacción.
Ya se confirmó o revirtió la transacción.
O bien
Se interrumpió la conexión.
Ejemplos
En el ejemplo siguiente se crea un SqlConnection objeto y .SqlTransaction También muestra cómo usar los Commitmétodos , BeginTransactiony Rollback . La transacción se revierte en cualquier error. Try
/Catch
El control de errores se usa para controlar los errores al intentar confirmar o revertir la transacción.
using Microsoft.Data.SqlClient;
namespace Transaction1CS
{
class Program
{
static void Main()
{
string connectionString =
"Persist Security Info=False;Integrated Security=SSPI;database=Northwind;server=(local)";
ExecuteSqlTransaction(connectionString);
Console.ReadLine();
}
private static void ExecuteSqlTransaction(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = connection.CreateCommand();
SqlTransaction transaction;
// Start a local transaction.
transaction = connection.BeginTransaction();
// Must assign both transaction object and connection
// to Command object for a pending local transaction
command.Connection = connection;
command.Transaction = transaction;
try
{
command.CommandText =
"Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
command.ExecuteNonQuery();
command.CommandText =
"Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
command.ExecuteNonQuery();
// Attempt to commit the transaction.
transaction.Commit();
Console.WriteLine("Both records are written to database.");
}
catch (Exception ex)
{
Console.WriteLine("Commit Exception Type: {0}", ex.GetType());
Console.WriteLine(" Message: {0}", ex.Message);
// Attempt to roll back the transaction.
try
{
transaction.Rollback();
}
catch (Exception ex2)
{
// This catch block will handle any errors that may have occurred
// on the server that would cause the rollback to fail, such as
// a closed connection.
Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
Console.WriteLine(" Message: {0}", ex2.Message);
}
}
}
}
}
}
Comentarios
El Commit método es equivalente a la instrucción COMMIT TRANSACTION de Transact-SQL. No se puede revertir una transacción una vez confirmada, porque todas las modificaciones se han convertido en una parte permanente de la base de datos. Para obtener más información, vea COMMIT TRANSACTION (Transact-SQL).
Nota:
Try
/Catch
Siempre se debe usar el control de excepciones al confirmar o revertir .SqlTransaction Tanto Commit
como Rollback genera un InvalidOperationException si la conexión finaliza o si la transacción ya se ha revertido en el servidor.
Para obtener más información sobre SQL Server transacciones, vea Transacciones (Transact-SQL).