2 <MyMembers name="Class">
\r
4 The application creates a <B>MySqlTransaction</B> object by calling <see cref="MySqlConnection.BeginTransaction"/>
\r
5 on the <see cref="MySqlConnection"/> object. All subsequent operations associated with the
\r
6 transaction (for example, committing or aborting the transaction), are performed on the
\r
7 <B>MySqlTransaction</B> object.
\r
11 The following example creates a <see cref="MySqlConnection"/> and a <B>MySqlTransaction</B>.
\r
12 It also demonstrates how to use the <see cref="MySqlConnection.BeginTransaction"/>,
\r
13 <see cref="MySqlTransaction.Commit"/>, and <see cref="MySqlTransaction.Rollback"/> methods.
\r
14 <code lang="Visual Basic">
\r
15 Public Sub RunTransaction(myConnString As String)
\r
16 Dim myConnection As New MySqlConnection(myConnString)
\r
19 Dim myCommand As MySqlCommand = myConnection.CreateCommand()
\r
20 Dim myTrans As MySqlTransaction
\r
22 ' Start a local transaction
\r
23 myTrans = myConnection.BeginTransaction()
\r
24 ' Must assign both transaction object and connection
\r
25 ' to Command object for a pending local transaction
\r
26 myCommand.Connection = myConnection
\r
27 myCommand.Transaction = myTrans
\r
30 myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
\r
31 myCommand.ExecuteNonQuery()
\r
32 myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
\r
33 myCommand.ExecuteNonQuery()
\r
35 Console.WriteLine("Both records are written to database.")
\r
36 Catch e As Exception
\r
39 Catch ex As MySqlException
\r
40 If Not myTrans.Connection Is Nothing Then
\r
41 Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
\r
42 " was encountered while attempting to roll back the transaction.")
\r
46 Console.WriteLine("An exception of type " & e.GetType().ToString() & _
\r
47 "was encountered while inserting the data.")
\r
48 Console.WriteLine("Neither record was written to database.")
\r
50 myConnection.Close()
\r
52 End Sub 'RunTransaction
\r
55 public void RunTransaction(string myConnString)
\r
57 MySqlConnection myConnection = new MySqlConnection(myConnString);
\r
58 myConnection.Open();
\r
60 MySqlCommand myCommand = myConnection.CreateCommand();
\r
61 MySqlTransaction myTrans;
\r
63 // Start a local transaction
\r
64 myTrans = myConnection.BeginTransaction();
\r
65 // Must assign both transaction object and connection
\r
66 // to Command object for a pending local transaction
\r
67 myCommand.Connection = myConnection;
\r
68 myCommand.Transaction = myTrans;
\r
72 myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
\r
73 myCommand.ExecuteNonQuery();
\r
74 myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
\r
75 myCommand.ExecuteNonQuery();
\r
77 Console.WriteLine("Both records are written to database.");
\r
85 catch (MySqlException ex)
\r
87 if (myTrans.Connection != null)
\r
89 Console.WriteLine("An exception of type " + ex.GetType() +
\r
90 " was encountered while attempting to roll back the transaction.");
\r
94 Console.WriteLine("An exception of type " + e.GetType() +
\r
95 " was encountered while inserting the data.");
\r
96 Console.WriteLine("Neither record was written to database.");
\r
100 myConnection.Close();
\r