1
Answer

Transactions a little bit faster

teobostrom

teobostrom

20y
1.7k
1
Transactions a little bit faster I´ve created a class to make some standard transaction development a little bit faster. The destructor seem to run, but something makes this object slow down the database, if SqlTransaction and/or SqlConnection isnt manualy handled with the method Commit(). Any ideas on how to handle the SqlTransaction and SqlConnection better? public class DataTransaction { private bool blnError = false; private ArrayList arrErrorList = new ArrayList(); private SqlConnection objConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString()); private SqlTransaction objTransaction; public DataTransaction() { objConnection.Open(); objTransaction = objConnection.BeginTransaction(); } ~DataTransaction() { if(objTransaction.Connection != null) { objTransaction = null; objConnection.Close(); } } public int ExecuteNonQuery(string Query) { int intRowsAffected = -1; SqlCommand objCommand = new SqlCommand(Query, objConnection, objTransaction); try { intRowsAffected = objCommand.ExecuteNonQuery(); } catch(Exception e) { blnError = true; arrErrorList.Add(e.ToString()); } finally { objCommand.Dispose(); } return intRowsAffected; } public System.Object ExecuteScalar(string Query) { System.Object objToReturn = null; SqlCommand objCommand = new SqlCommand(Query, objConnection, objTransaction); try { objToReturn = objCommand.ExecuteScalar(); } catch(Exception e) { blnError = true; arrErrorList.Add(e.ToString()); } finally { objCommand.Dispose(); } return objToReturn; } public bool Commit() { if(!blnError) { objTransaction.Commit(); return true; } else { objTransaction.Rollback(); return false; } objConnection.Close(); } }
Answers (1)