Sdílet prostřednictvím


Technologiebeispiel für Transaktionen

Aktualisiert: November 2007

In diesem Beispiel wird gezeigt, wie Sie Transaktionen in einer .NET Framework-Anwendung verwenden. Insbesondere werden die "commit"-Funktion und die "abort"-Funktion von Transaktionen durch Abrufen eines Werts aus einer SQL Server-Datenbank veranschaulicht, sodass der Benutzer den Wert bearbeiten und den neuen Wert an die Datenbank übermitteln kann.

Hinweis:

Um dieses Beispiel zu erstellen und auszuführen, muss auf dem Computer Microsoft SQL Server 2000 oder höher installiert sein. Zudem muss das Datenbankmodul für die Verwendung der Windows-Authentifizierung konfiguriert sein. Bei anderen Konfigurationen müssen Sie die SQL-Verbindungszeichenfolge in der Datei TxObj.cs oder TxObj.vb bearbeiten.

Informationen zum Verwenden der Beispiele finden Sie in folgenden Themen:

So erstellen Sie die Datenbank TxDemoDB

  1. Öffnen Sie ein Eingabeaufforderungsfenster, und navigieren Sie zu einem der sprachspezifischen Unterverzeichnisse unter dem Verzeichnis Technologies\ComponentServices\Transactions.

  2. Geben Sie osql -E -S (local)\SQLExpress -i TxDB.sql in der Befehlszeile ein. Alternativ können Sie das SQL Server Query Analyzer-Fenster öffnen, TxDB.sql laden und Ausführen auswählen.

    Diese Aktion erstellt auf dem SQL Server-Computer eine neue Datenbank TxDemoDB.

So erstellen Sie das Beispiel mithilfe der Eingabeaufforderung

  1. Öffnen Sie ein Eingabeaufforderungsfenster, und navigieren Sie zu einem der sprachspezifischen Unterverzeichnisse unter dem Verzeichnis Technologies\ComponentServices\Transactions, oder verwenden Sie das Befehlsfenster, das Sie weiter oben bereits zum Erstellen der Datenbank TxDemoDB verwendet haben.

  2. Geben Sie je nach verwendeter Programmiersprache msbuild TransactionsCS.sln oder msbuild TransactionsVB.sln in der Befehlszeile ein.

So erstellen Sie das Beispiel mithilfe von Visual Studio

  1. Öffnen Sie Windows Explorer, und navigieren Sie zu einem der sprachspezifischen Unterverzeichnisse für das Beispiel.

  2. Doppelklicken Sie je nach verwendeter Programmiersprache auf das Symbol für TransactionsCS.sln oder TransactionsVB.sln, um die Datei in Visual Studio zu öffnen.

  3. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

So führen Sie das Beispiel aus

  1. Öffnen Sie ein Eingabeaufforderungsfenster oder Windows Explorer, und navigieren zu dem Verzeichnis, das die neu erstellte ausführbare Datei enthält.

  2. Geben Sie TxDemo.exe in der Befehlszeile ein, oder doppelklicken Sie in Windows Explorer auf das Symbol für die ausführbare Datei.

  3. Der aktuelle Wert wird in der Datenbank gelesen und angezeigt.

  4. Geben Sie eine Zahl gleich oder größer als 0 (null) bzw. kleiner als oder gleich 10 im Feld Neuer Wert ein, und klicken Sie auf die Schaltfläche Bereitstellen.

  5. Die Meldung "About to commit the transaction" sollte angezeigt werden. Klicken Sie auf OK. Das Feld Aktueller Wert wird jetzt mit dem von Ihnen eingegebenen Wert aktualisiert.

  6. Geben Sie eine Zahl kleiner als 0 (null) oder größer als 10 im Feld Neuer Wert ein. Klicken Sie auf die Schaltfläche Bereitstellen.

  7. Die Meldung "About to abort the transaction because the new value ([IhrWert]) is either <0 or >10." sollte angezeigt werden. Klicken Sie auf OK. Beachten Sie, dass sich das Feld Aktueller Wert nicht ändert. Das liegt daran, dass sich der Wert während der Transaktion zwar geändert hat, er aber wieder in den ursprünglichen Wert geändert wurde, als die Transaktion rückgängig gemacht wurde.

  8. Probieren Sie es jetzt mit denselben Daten und der Schaltfläche AutoPost. Dabei werden Sie feststellen, dass eine COMException ausgelöst wird, wenn im Beispiel die Transaktion abgebrochen wird. So wird AutoComplete angewiesen, den Vorgang abzubrechen.

So deinstallieren Sie das Beispiel

  1. Navigieren Sie im Eingabeaufforderungsfenster zu dem Verzeichnis, in dem Sie msbuild.exe ausgeführt oder in dem Sie die SLN-Datei geöffnet haben.

  2. Geben Sie je nach verwendeter Programmiersprache msbuild.exe TransactionsVB.vbproj /t:Clean oder msbuild.exe TransactionsCS.csproj/t:Clean ein. Diese Aktion ruft regsvcs.exe und gacutil.exe mit dem /u-Schalter zum Entfernen der Beispieldateien aus dem COM+-Katalog und dem globalen Assemblycache auf.

  3. Geben Sie osql -E -S (local)\SQLExpress -i TxDBClean.sql in der Befehlszeile ein. Alternativ können Sie das SQL Server Query Analyzer-Fenster öffnen, TxDBClean.sql laden und Ausführen auswählen. Diese Aktion entfernt die Datenbank TXDemoDB vom SQL Server-Computer.

Anforderungen

.NET Framework-Version: 2.0, 1.1, 1.0

Hinweise

Eine Transaktion ist eine Gruppe zusammengehörender Vorgänge. Entweder werden alle Vorgänge ausgeführt, oder kein Vorgang wird ausgeführt. Wenn ein Vorgang in der Transaktion fehlschlägt, müssen alle vorhergehenden Vorgänge zurückgesetzt werden, um sicherzustellen, dass keine Inkonsistenzen auftreten.

Weitere Informationen zum Erstellen von binären Beispieldateien und zu Registrierungsschritten finden in den Kommentaren in den Quellcodedateien. In dem Verwaltungstool Komponentendienste wird die C#-Komponente als TxDemoServerCS.TxObject angezeigt. Die VB-Version wird als TxDemoServerVB.TxObject angezeigt.

Siehe auch

Konzepte

Lokale Transaktionen (ADO.NET)

Referenz

AutoCompleteAttribute

ContextUtil

ServicedComponent

System.ComponentModel

System.Data

System.Data.SqlClient

System.Drawing

System.EnterpriseServices

System.Reflection

System.Runtime.InteropServices

System.Runtime.Serialization

System.Windows.Forms

TransactionAttribute

TransactionOption

WebMethodAttribute