private int GetCountFromDictionary <T>(CommonSqlKey sqlKey, IDictionary <string, object> parmDic) { DbDataReader dr = null; int tLst = 0; var logStep = 0; try { //如果为空sql可以,则根据类型和传入参数自动构造select语句,同时where条件为传入参数 var sqlTxt = sqlKey == CommonSqlKey.Null ? SqlConstructor.GetSelectSqlByParmDic <T>(parmDic) : CommSqlText.Instance[sqlKey]; logStep++; var sqlParameters = sqlKey == CommonSqlKey.Null ? null : parmDic; // SqlConstructor.MakeParms(parmDic, CommSqlText.SqlParms[sqlKey]); sqlTxt = SqlConstructor.FilterSQLWithInsteadValue(sqlTxt, sqlParameters); logStep++; sqlParameters = sqlKey == CommonSqlKey.Null ? null : SqlConstructor.FilterParmsWithList(sqlParameters, CommSqlText.SqlParms[sqlKey]); logStep++; tLst = DbHelper.ExecuteScalar(sqlTxt, sqlParameters) == null ? 0 : int.Parse(DbHelper.ExecuteScalar(sqlTxt, sqlParameters).ToString()); } catch (MySqlException ee) { Logger.LogInfo(String.Format("GetFromDictionary ERROR STEP:{0}, EXCEPTION:{1}", logStep, ee.Message), 0, LogType.ERROR); throw ee; } finally { if (dr != null) { dr.Close(); dr.Dispose(); } } return(tLst); }
private List <T> GetFromDictionary <T>(CommonSqlKey sqlKey, IDictionary <string, object> parmDic) { DbConnection dbConn = null; DbDataReader dr = null; var tLst = new List <T>(); var logStep = 0; try { //如果为空sql可以,则根据类型和传入参数自动构造select语句,同时where条件为传入参数 var sqlTxt = sqlKey == CommonSqlKey.Null ? SqlConstructor.GetSelectSqlByParmDic <T>(parmDic) : CommSqlText.Instance[sqlKey]; logStep++; var sqlParameters = sqlKey == CommonSqlKey.Null ? null : parmDic; // SqlConstructor.MakeParms(parmDic, CommSqlText.SqlParms[sqlKey]); sqlTxt = SqlConstructor.FilterSQLWithInsteadValue(sqlTxt, sqlParameters); logStep++; sqlParameters = sqlKey == CommonSqlKey.Null ? null : SqlConstructor.FilterParmsWithList(sqlParameters, CommSqlText.SqlParms[sqlKey]); logStep++; dr = DbHelper.ExecuteReader(sqlTxt, sqlParameters, ref dbConn); logStep = 100; if (dr == null) { return(tLst); } var hasCount = dr.Read(); while (hasCount) { logStep += 10; var t = MakeMapToObject <T>(dr); if (t != null) { tLst.Add(t); } logStep += 1; hasCount = dr.Read(); } } catch (MySqlException ee) { //Logger.LogInfo(String.Format("GetFromDictionary ERROR STEP:{0}, EXCEPTION:{1}", logStep, ee.Message), 0, LogType.ERROR); throw ee; } finally { if (dr != null) { dr.Close(); dr.Dispose(); } if (dbConn != null) { dbConn.Close(); dbConn.Dispose(); } } return(tLst); }