Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo SqlTransaction.Rollback (String)

 

Data di pubblicazione: ottobre 2016

Rollback di una transazione da uno stato in sospeso e specifica il nome del punto di salvataggio o transazione.

Spazio dei nomi:   System.Data.SqlClient
Assembly:  System.Data (in System.Data.dll)

public void Rollback(
	string transactionName
)

Parametri

transactionName
Type: System.String

Il nome della transazione per eseguire il rollback o il punto di salvataggio a cui eseguire il rollback.

Exception Condition
ArgumentException

È stato specificato alcun nome di transazione.

InvalidOperationException

È già stato eseguito il rollback o il commit della transazione.

-oppure-

La connessione non funziona.

Il Rollback metodo è equivalente all'istruzione Transact-SQL ROLLBACK TRANSACTION. Per ulteriori informazioni, vedere "Explicit Transactions" e "Salvataggio delle transazioni" nella documentazione Online di SQL Server.

Può solo essere il rollback della transazione da uno stato in sospeso (dopo BeginTransaction è stato chiamato, ma prima che Commit viene chiamato). La transazione viene sottoposta a rollback se viene eliminato prima di Commit o Rollback viene chiamato.

System_CAPS_noteNota

Try/Catch la gestione delle eccezioni deve essere sempre utilizzata durante il rollback di una transazione. Oggetto Rollback Genera un InvalidOperationException Se la connessione viene terminata o se è già stata il rollback della transazione nel server.

Per ulteriori informazioni sulle transazioni di SQL Server, vedere gli argomenti relativi alle transazioni esplicite e alla codifica di transazioni efficienti nella documentazione online di SQL Server.

Nell'esempio seguente viene creato un SqlConnection e SqlTransaction. Viene inoltre illustrato come utilizzare il BeginTransaction, Commit, e Rollback metodi. Il rollback della transazione in caso di errore. Try/Catch la gestione degli errori viene utilizzato per gestire eventuali errori durante il tentativo di eseguire il commit o il rollback della transazione.

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("SampleTransaction");

        // 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);
            }
        }
    }
}

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: