/ / Wie kann ich die Transaktionskontrolle beim Datenzugriff mit DataAdapter und Stored Procedure in C # durchführen - c #, Datenadapter

Wie funktioniert die Transaktionskontrolle beim Datenzugriff mit DataAdapter und Stored Procedure in C #? - c #, Datenadapter

Transaktionskontrolle beim DatenzugriffDataAdapter und gespeicherte Prozedur in C # verwenden? Derzeit möchte ich zwei gespeicherte Prozeduraufrufe über DataAdapter ausführen, aber ich möchte die Transaktionssteuerung darauf ausführen. Gibt es eine Möglichkeit, dies zu tun?

Antworten:

3 für die Antwort № 1

Die bevorzugte Methode ist die Verwendung von Transaktionsbereichen, um dies für Sie zu erledigen. Umgeben Sie den Code, der beide Aufrufe von gespeicherten Prozeduren aufruft, einfach mit einem neuen Code TransactionScope:

using(TransactionScope scope = new TransactionScope())
{
// your ADO.NET code that calls sprocs ...
}

Alle Aufrufe an die Datenbank, die in derselben Situation auftretenDie Verbindung wird automatisch in einer einzigen Transaktion zusammengefasst. Sie können auch angeben, ob der Code innerhalb des Transaktionsbereichs in eine vorhandene Transaktion aufgenommen werden soll oder über die Option optional einen eigenen starten soll TransactionScopeOption Parameter.

Dies ist die bevorzugte Art, Anrufe in einer einzigen Transaktion zusammenzufassen. Das Alternativeist, eine DBTransaction manuell durch Aufruf zu erhalten Connection.BeginTransaction() - Ihre Arbeit ausführen und dann anrufen tran.Commit().


1 für die Antwort № 2

Ich glaube, der einfachste Weg wäre, beide Anrufe in einen TransactionScope zu packen. Siehe das Beispiel auf dieser Seite:

http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx