OracleConnection.BeginTransaction Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Beginnt eine Transaktion an der Datenbank.
Überlädt
BeginTransaction() |
Beginnt eine Transaktion an der Datenbank. |
BeginTransaction(IsolationLevel) |
Beginnt eine Transaktion an der Datenbank mit dem angegebenen IsolationLevel-Wert. |
BeginTransaction()
Beginnt eine Transaktion an der Datenbank.
public:
System::Data::OracleClient::OracleTransaction ^ BeginTransaction();
public System.Data.OracleClient.OracleTransaction BeginTransaction ();
member this.BeginTransaction : unit -> System.Data.OracleClient.OracleTransaction
override this.BeginTransaction : unit -> System.Data.OracleClient.OracleTransaction
Public Function BeginTransaction () As OracleTransaction
Gibt zurück
Ein Objekt, das die neue Transaktion darstellt.
Ausnahmen
Parallele Transaktionen werden nicht unterstützt.
Beispiele
Das folgende Beispiel erstellt eine OracleConnection und ein OracleTransaction. Außerdem wird veranschaulicht, wie die BeginTransactionMethoden , Commitund Rollback verwendet werden.
public void RunOracleTransaction(string connectionString)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
OracleCommand command = connection.CreateCommand();
OracleTransaction transaction;
// Start a local transaction
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
command.Transaction = transaction;
try
{
command.CommandText =
"INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')";
command.ExecuteNonQuery();
command.CommandText =
"INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')";
command.ExecuteNonQuery();
transaction.Commit();
Console.WriteLine("Both records are written to database.");
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
}
}
Public Sub RunOracleTransaction(ByVal connectionString As String)
Using connection As New OracleConnection(connectionString)
connection.Open()
Dim command As OracleCommand = connection.CreateCommand()
Dim transaction As OracleTransaction
' Start a local transaction
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)
' Assign transaction object for a pending local transaction
command.Transaction = transaction
Try
command.CommandText = _
"INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')"
command.ExecuteNonQuery()
command.CommandText = _
"INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')"
command.ExecuteNonQuery()
transaction.Commit()
Console.WriteLine("Both records are written to database.")
Catch e As Exception
transaction.Rollback()
Console.WriteLine(e.ToString())
Console.WriteLine("Neither record was written to database.")
End Try
End Using
End Sub
Hinweise
Um die Transaktion zu committen oder ein Rollback auszuführen, müssen Sie explizit die -Methode oder Rollback verwendenCommit.
Um sicherzustellen, dass das .NET Framework-Datenanbieter für Oracle-Transaktionsverwaltungsmodell ordnungsgemäß funktioniert, vermeiden Sie die Verwendung anderer Transaktionsverwaltungsmodelle, z. B. der von der Datenbank bereitgestellten.
Hinweis
Wenn Sie keine Isolationsstufe angeben, wird die Standardisolationsstufe verwendet. Verwenden Sie die -Überladung, um eine Isolationsstufe mit der BeginTransactionBeginTransaction -Methode anzugeben.
Weitere Informationen
Gilt für:
BeginTransaction(IsolationLevel)
Beginnt eine Transaktion an der Datenbank mit dem angegebenen IsolationLevel-Wert.
public:
System::Data::OracleClient::OracleTransaction ^ BeginTransaction(System::Data::IsolationLevel il);
public System.Data.OracleClient.OracleTransaction BeginTransaction (System.Data.IsolationLevel il);
member this.BeginTransaction : System.Data.IsolationLevel -> System.Data.OracleClient.OracleTransaction
override this.BeginTransaction : System.Data.IsolationLevel -> System.Data.OracleClient.OracleTransaction
Public Function BeginTransaction (il As IsolationLevel) As OracleTransaction
Parameter
Der Transaktionsisolationsgrad für diese Verbindung.
Gibt zurück
Ein Objekt, das die neue Transaktion darstellt.
Ausnahmen
Parallele Transaktionen werden nicht unterstützt.
Beispiele
Das folgende Beispiel erstellt eine OracleConnection und ein OracleTransaction. Außerdem wird veranschaulicht, wie die BeginTransactionMethoden , Commitund Rollback verwendet werden.
public void RunOracleTransaction(string connectionString)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
OracleCommand command = connection.CreateCommand();
OracleTransaction transaction;
// Start a local transaction
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
command.Transaction = transaction;
try
{
command.CommandText =
"INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')";
command.ExecuteNonQuery();
command.CommandText =
"INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')";
command.ExecuteNonQuery();
transaction.Commit();
Console.WriteLine("Both records are written to database.");
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
}
}
Public Sub RunOracleTransaction(ByVal connectionString As String)
Using connection As New OracleConnection(connectionString)
connection.Open()
Dim command As OracleCommand = connection.CreateCommand()
Dim transaction As OracleTransaction
' Start a local transaction
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)
' Assign transaction object for a pending local transaction
command.Transaction = transaction
Try
command.CommandText = _
"INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')"
command.ExecuteNonQuery()
command.CommandText = _
"INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')"
command.ExecuteNonQuery()
transaction.Commit()
Console.WriteLine("Both records are written to database.")
Catch e As Exception
transaction.Rollback()
Console.WriteLine(e.ToString())
Console.WriteLine("Neither record was written to database.")
End Try
End Using
End Sub
Hinweise
Um die Transaktion zu committen oder ein Rollback auszuführen, müssen Sie explizit die -Methode oder Rollback verwendenCommit.
Um sicherzustellen, dass das .NET Framework-Datenanbieter für Oracle-Transaktionsverwaltungsmodell ordnungsgemäß funktioniert, vermeiden Sie die Verwendung anderer Transaktionsverwaltungsmodelle, z. B. der von der Datenbank bereitgestellten.