Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

SqlConnection.BeginTransaction-Methode (IsolationLevel, String)

Startet eine Datenbanktransaktion mit dem angegebenen Isolationsgrad und Transaktionsnamen.

Namespace: System.Data.SqlClient
Assembly: System.Data (in system.data.dll)

public SqlTransaction BeginTransaction (
	IsolationLevel iso,
	string transactionName
)
public SqlTransaction BeginTransaction (
	IsolationLevel iso, 
	String transactionName
)
public function BeginTransaction (
	iso : IsolationLevel, 
	transactionName : String
) : SqlTransaction

Parameter

iso

Der Isolationsgrad, unter dem die Transaktion ausgeführt werden soll.

transactionName

Der Name der Transaktion.

Rückgabewert

Ein Objekt, das die neue Transaktion darstellt.
AusnahmetypBedingung

InvalidOperationException

Es werden keine parallelen Transaktionen unterstützt.

Dieser Befehl ist der SQL Server-Implementierung von BEGIN TRANSACTION zugeordnet.

Der Wert im transactionName-Parameter kann in späteren Aufrufen von Rollback und im savePoint-Parameter der Save-Methode verwendet werden.

Sie müssen für die Transaktion mit der Commit-Methode oder der Rollback-Methode einen expliziten Commit oder Rollback ausführen. Um sicherzustellen, dass das Transaktionsverwaltungsmodell des .NET Framework-Datenanbieters für SQL Server richtig ausgeführt wird, sollten Sie andere Transaktionsverwaltungsmodelle, z. B. das von SQL Server bereitgestellte, nicht verwenden.

HinweisHinweis

Nachdem für eine Transaktion ein Commit oder Rollback ausgeführt wurde, wird der Isolationsgrad der Transaktion für alle weiteren Befehle beibehalten, die im Autocommit-Modus ausgeführt werden (Standardeinstellung für Microsoft SQL Server). Dies kann zu unerwarteten Ergebnissen führen. So kann beispielsweise der Isolationsgrad REPEATABLE READ beibehalten werden und die entsprechende Zeile für andere Benutzer gesperrt bleiben. Zum Zurücksetzen des Isolationsgrads auf den Standardwert (READ COMMITTED) führen Sie die Transact-SQL-Anweisung SET TRANSACTION ISOLATION LEVEL READ COMMITTED aus, oder rufen Sie zuerst SqlConnection.BeginTransaction und unmittelbar danach SqlTransaction.Commit auf. Weitere Informationen über die Isolierungsgrade von SQL Server finden Sie in SQL Server 2005 Books Online unter "Isolation Levels in the Database Engine" (nur auf Englisch verfügbar).

Weitere Informationen über SQL Server-Transkationen finden Sie in SQL Server 2005 Books Online unter "Explicit Transactions" und "Coding Efficient Transactions" (nur auf Englisch verfügbar).

Im folgenden Beispiel werden eine SqlConnection und eine SqlTransaction erstellt. Darüber hinaus wird die Verwendung der Methoden BeginTransaction, Commit und Rollback veranschaulicht.

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(
            IsolationLevel.ReadCommitted, "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();
            transaction.Commit();
            Console.WriteLine("Both records are written to database.");
        }
        catch (Exception e)
        {
            try
            {
                transaction.Rollback();
            }
            catch (SqlException ex)
            {
                if (transaction.Connection != null)
                {
                    Console.WriteLine("An exception of type " + ex.GetType() +
                        " was encountered while attempting to roll back the transaction.");
                }
            }

            Console.WriteLine("An exception of type " + e.GetType() +
                " was encountered while inserting the data.");
            Console.WriteLine("Neither record was written to database.");
        }
    }
}

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
© 2013 Microsoft. Alle Rechte vorbehalten.