예제 #1
0
        /// <summary>
        /// 指定替换对象查询,并返回对象列表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="sql"></param>
        /// <param name="types"></param>
        /// <returns></returns>
        public override List <T> ExecList <T>(string sql, params Type[] types)
        {
            sql = _DBAdapter.SqlFormat(sql);
            var    reader = GetDataReader(sql, types);
            double runTime;

            return(ObjectConvert.DataReaderToList <T>(reader, out runTime));
        }
예제 #2
0
        /// <summary>
        /// 执行存储过程返回结果集
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="sp"></param>
        /// <returns></returns>
        public override List <T> RunList <T>(string sp)
        {
            var reader = dbHelper.RunDataReader(sp);

            ClearParame();
            double runTime;

            return(ObjectConvert.DataReaderToList <T>(reader, out runTime));
        }
예제 #3
0
        /// <summary>
        /// 按select返回指定类型
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="query"></param>
        /// <returns></returns>
        public override List <TResult> QueryDynamic <TModel, TResult>(LambdaQuery <TModel> query)
        {
            var    reader = GetQueryDynamicReader(query);
            double runTime;
            var    list = ObjectConvert.DataReaderToList <TResult>(reader, out runTime, false);

            query.MapingTime += runTime;
            query.RowCount    = list.Count;
            return(list);
        }
예제 #4
0
        static List <object> QueryData(string key, Type type, string query, DBHelper helper)
        {
            if (cacheDatas.Count > 1000)
            {
                EventLog.Log("数据缓存超过了1000个,请检查程序调用是否正确", true);
            }
            DateTime time = DateTime.Now;

            System.Data.Common.DbDataReader reader;
            string sql;

            //语句
            if (query.IndexOf("select ") > -1)
            {
                sql    = query;
                reader = helper.ExecDataReader(sql);
            }//存储过程
            else if (query.IndexOf("exec ") > -1)
            {
                string sp = query.Replace("exec ", "");
                reader = helper.RunDataReader(sp);
            }//表名
            else
            {
                sql    = "select * from " + query;
                reader = helper.ExecDataReader(sql);
            }
            double runTime;
            var    list = ObjectConvert.DataReaderToList <object>(reader, type, out runTime, true);
            string par  = "";

            foreach (KeyValuePair <string, object> item in helper.Params)
            {
                par += item.Key + ":" + item.Value;
            }
            //list.ForEach(b =>
            //    {
            //        var item = b as IModel;
            //        item.AddCacheListen();
            //    });
            var ts = DateTime.Now - time;

            //WriteLog("更新查询 " + tableName + " 参数 " + par);
            EventLog.Log("更新查询 " + key + " 用时:" + ts.TotalSeconds + "秒", "DataCache");
            return(list);
        }