In linea con questo post qui Ho intenzione di modificare il mio sito Web per creare una connessione per query per sfruttare il pool di connessioni di .NET. Con questo in mente, non so come dovrei occuparmi delle transazioni. Al momento faccio qualcosa come (codice psuedo):
GlobalTransaction = GlobalDBConnection.BeginTransaction();
try
{
ExecSQL("insert into table ..")
ExecSQL("update some_table ..")
....
GlobalTransaction.Commit();
}catch{
GlobalTransaction.Rollback();
throw;
}
ExecSQL sarebbe come questo:
using (SqlCommand Command = GlobalDBConnection.CreateCommand())
{
Command.Connection = GlobalDBConnection;
Command.Transaction = GlobalTransaction;
Command.CommandText = SQLStr;
Command.ExecuteNonQuery();
}
Non sono abbastanza sicuro di come cambiare questo concetto per gestire le transazioni se la connessione viene creata all'interno di ExecSQL
perché vorrei che la transazione fosse condivisa tra le routine di inserimento e di aggiornamento.