C sharp - transacciones

 
Vista:

transacciones

Publicado por Oscar (19 intervenciones) el 20/10/2009 18:08:11
Hola,

Tengo una función para ejecutar transacciones con la conexión oledb. El problema es que al ejecutar dos hilos con la misma conexión esta función me da un error de que oledb no admite transacciones paralelas. Mi pregunta es si hay alguna forma de saber si la conexión está ejecutando una trasacción para que espere a que termine.

La función:
public bool ExecuteTransaction(List<string> conNonQuery)
{
OleDbCommand command = new OleDbCommand();
OleDbTransaction transaction = null;

// Set the Connection to the new OleDbConnection.
command.Connection = con;

// Open the connection and execute the transaction.
try
{
if (!getState())
Open();

// Start a local transaction with ReadCommitted isolation level.
transaction = con.BeginTransaction(IsolationLevel.ReadCommitted);

// Assign transaction object for a pending local transaction.
command.Connection = con;
command.Transaction = transaction;

foreach (string s in conNonQuery)
{
command.CommandText = s;
command.ExecuteNonQuery();
}

// Commit the transaction.
transaction.Commit();
return true;
}

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder