C# SQL Connection Best Connection Practice
Posted on Sunday, January 17, 2016
|
No Comments
namespace Repository { public class SQLRepository { DbConnector dbCon = new DbConnector(); #region Query Execute public Result ExecuteQuery(string SQL) { Result oResult = new Result(); SqlCommand oCmd = null; try { if (dbCon.Connect != null) { dbCon.OpenConnection(); oCmd = new SqlCommand(SQL, dbCon.Connect); oCmd.ExecuteNonQuery(); oResult.ResultState = true; } } catch (Exception ex) { oResult.ResultState = false; oResult.SqlError = ex.Message; } finally { dbCon.CloseConnection(); } return oResult; } public Result ExecuteQuery(ListSQL) { Result oResult = new Result(); SqlTransaction oTransaction = null; SqlCommand oCmd = null; try { if (dbCon.Connect != null) { dbCon.OpenConnection(); oTransaction = dbCon.Connect.BeginTransaction(); foreach (string s in SQL) { oCmd = new SqlCommand(s, dbCon.Connect); oCmd.Transaction = oTransaction; oCmd.ExecuteNonQuery(); oResult.ResultState = true; } oTransaction.Commit(); } } catch (Exception ex) { oResult.ResultState = false; oResult.SqlError = ex.Message; if (oTransaction != null) oTransaction.Rollback(); } finally { dbCon.CloseConnection(); } return oResult; } public Result ExecuteQueryParam(List SQL) { Result oResult = new Result(); SqlTransaction oTransaction = null; SqlCommand oCmd = null; try { if (dbCon.Connect != null) { dbCon.OpenConnection(); oTransaction = dbCon.Connect.BeginTransaction(); foreach (SQLQuery s in SQL) { oCmd = new SqlCommand(s.sql, dbCon.Connect); oCmd.Transaction = oTransaction; foreach (SQLParam param in s.Param) { SqlParameter picparameter = new SqlParameter(); picparameter.SqlDbType = param.DbType; //SqlDbType.Image; picparameter.ParameterName = param.ParamName; //"@PIC"; picparameter.Value = param.ParamValue; oCmd.Parameters.Add(picparameter); } oCmd.ExecuteNonQuery(); oResult.ResultState = true; } oTransaction.Commit(); } } catch (Exception ex) { oResult.ResultState = false; oResult.SqlError = ex.Message; if (oTransaction != null) oTransaction.Rollback(); } finally { dbCon.CloseConnection(); } return oResult; } #endregion public Result Select(string SQL) { Result oResult = new Result(); SqlCommand oCmd = null; try { if (dbCon.Connect != null) { oCmd = new SqlCommand(SQL, dbCon.Connect); oCmd.CommandTimeout = 0; SqlDataAdapter adapter = new SqlDataAdapter(oCmd); DataTable dt = new DataTable(); adapter.Fill(dt); oResult.ResultState = true; oResult.Data = dt; } } catch (Exception ex) { oResult.ResultState = false; oResult.SqlError = ex.Message; } finally { dbCon.CloseConnection(); } return oResult; } } public class DbConnector { private SqlConnection connection; public DbConnector() { connection = new SqlConnection(GlobalConnection()); } public string GlobalConnection() { //string entityConnectionString = ConfigurationManager.ConnectionStrings["ERPEntities"].ConnectionString; //string providerConnectionString = new EntityConnectionStringBuilder(entityConnectionString).ProviderConnectionString; //return providerConnectionString; string str = ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString(); //ConfigurationSettings.AppSettings["CNN"]; return str; } public SqlConnection Connect { get { return connection; } } public ConnectionState OpenConnection() { Connect.Open(); return ConnectionState.Open; } public ConnectionState CloseConnection() { Connect.Close(); return ConnectionState.Closed; } } public class SQLQuery { public string sql { get; set; } public List Param = new List (); } public class SQLParam { public string ParamName { get; set; } public byte[] ParamValue { get; set; } public SqlDbType DbType { get; set; } } //public class Result //{ // public bool ResultState; // public string SqlError; // public DataTable Data; //} }