Connection |
SqlConnection sqlConnection = Transaction.Connection; |
Gets the connection object associated with the transaction.
The following example demonstrates how to retrieve the connection object for a transaction:
String connString = "Data Source=(local);Integrated security=SSPI;" + "Initial Catalog=Northwind;"; SqlConnection conn = new SqlConnection(connString); conn.Open(); SqlTransaction tran = conn.BeginTransaction(); // returns a reference to the SqlConnection conn SqlConnection conn2 = tran.Connection;
This value is null if the connection is no longer valid.
IsolationLevel |
IsolationLevel isolationLevel = Transaction.IsolationLevel; |
Gets the isolation level for the transaction. This value is one of the IsolationLevel enumeration values described in Table 31-4.
Name | Description |
---|---|
ReadUncommitted | No shared locks are issued, and exclusive locks aren't honored. A dirty read is possible. |
ReadCommitted | Shared locks are held while data is being read by the transaction. Dirty reads aren't possible, but non-repeatable reads or phantom rows can occur because data can be changed before it is committed. |
RepeatableRead | Shared locks are placed on all data used in a query, preventing other users from updating the data. Nonrepeatable reads are prevented, but phantom reads are still possible. |
Serializable | A range lock, in which the individual records and the ranges between records are covered, is placed on the data preventing other users from updating or inserting rows until the transaction is complete. Phantom reads are prevented. |
Chaos | Pending changes from more highly isolated transactions can't be overwritten. Not supported by SQL Server. |
Unspecified | A different isolation level than the one specified is used, but that level can't be determined. |
The following example demonstrates how to set the IsolationLevel for a new transaction:
String connString = "Data Source=(local);Integrated security=SSPI;" + "Initial Catalog=Northwind;"; SqlConnection conn = new SqlConnection(connString); conn.Open(); SqlTransaction tran = conn.BeginTransaction(IsolationLevel.RepeatableRead); // returns IsolationLevel.RepeatableRead IsolationLevel il = tran.IsolationLevel;
The default value of the IsolationLevel property is ReadCommitted .