/// <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);
        }
Example #2
0
        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);
        }