/// <summary> /// 根据sql语句和DataRow对象自动生成参数化查询SqlParameter列表 /// </summary> /// <param name="dr"></param> /// <param name="sqlStr"></param> /// <returns></returns> public static List <Model.DbSqlParams> From(System.Data.DataRow dr, String sqlStr) { sqlStr = ReplaceWrap(sqlStr); List <Model.DbSqlParams> dbParamsList = new List <Model.DbSqlParams>(); List <string> listStr = new List <string>(); Match mymatch = reg.Match(sqlStr); try { while (mymatch.Success) { listStr.Add(mymatch.Value.TrimEnd(filterChars).TrimStart(':')); mymatch = mymatch.NextMatch(); } foreach (var item in listStr) { Model.DbSqlParams dbParams = new Model.DbSqlParams(); dbParams.ParameterName = string.Format(":{0}", item); string name = item.Replace("\r", ""); dbParams.Value = dr[name];//dr[item]; dbParamsList.Add(dbParams); } } catch (Exception ex) { Log4netUtil.Log4NetHelper.Error(string.Format("GetSqlParameters解析回写Sql语句参数失败,失败原因:{0}", ex.Message), "BillError"); } return(dbParamsList); }
public static Model.DbSql GetDbSqlLog(string success, string strSql, string ExceptionMessage, System.Data.Common.DbParameter[] cmdParams) { Model.DbSql dbSql = new Model.DbSql(); dbSql.Success = success; dbSql.Sql = strSql; dbSql.ExceptionMessage = ExceptionMessage; try { List <Model.DbSqlParams> ParamsItems = new List <Model.DbSqlParams>(); if (cmdParams == null) { Model.DbSqlParams dbSqlParams = new Model.DbSqlParams(); dbSqlParams.ParameterName = string.Empty; dbSqlParams.Value = string.Empty; ParamsItems.Add(dbSqlParams); } else { for (int i = 0; i < cmdParams.Count(); i++) { Model.DbSqlParams dbSqlParams = new Model.DbSqlParams(); dbSqlParams.ParameterName = cmdParams[i].ParameterName; dbSqlParams.Value = cmdParams[i].Value; ParamsItems.Add(dbSqlParams); } if (ParamsItems.Count < 1) { Model.DbSqlParams dbSqlParams = new Model.DbSqlParams(); dbSqlParams.ParameterName = string.Empty; dbSqlParams.Value = string.Empty; ParamsItems.Add(dbSqlParams); } } dbSql.ParamsItems = ParamsItems; return(dbSql); } catch (Exception ex) { dbSql.Success = "9999"; dbSql.ExceptionMessage = ex.Message; Model.DbSqlParams dbSqlParams = new Model.DbSqlParams(); dbSqlParams.ParameterName = string.Empty; dbSqlParams.Value = string.Empty; List <Model.DbSqlParams> ParamsItems = new List <Model.DbSqlParams>(); ParamsItems.Add(dbSqlParams); dbSql.ParamsItems = ParamsItems; return(dbSql); } }
/// <summary> /// 根据sql语句自动生成参数化查询SqlParameter列表 /// </summary> /// <param name="sqlStr"></param> /// <returns></returns> public static List <Model.DbSqlParams> From(String sqlStr) { List <string> listStr = new List <string>(); Match mymatch = reg.Match(sqlStr); while (mymatch.Success) { listStr.Add(mymatch.Value.TrimEnd(filterChars).TrimStart(':')); mymatch = mymatch.NextMatch(); } List <Model.DbSqlParams> dbParamsList = new List <Model.DbSqlParams>(); foreach (var item in listStr) { Model.DbSqlParams dbParams = new Model.DbSqlParams(); dbParams.ParameterName = string.Format(":{0}", item); dbParams.Value = item; dbParamsList.Add(dbParams); } return(dbParamsList); }