コード例 #1
0
ファイル: QueryPage.cs プロジェクト: zyj0021/DBAcessSrv
        /// <summary>
        /// 获取数据
        /// </summary>
        /// <param name="db"></param>
        /// <param name="query"></param>
        /// <param name="pageNum"></param>
        /// <returns></returns>
        public DataTable GetDataTable(string db, string query, int pageNum)
        {
            if (!PageConfig.isMemory)
            {
                return(null);
            }
            Dictionary <string, PageSQL> pageSQL = null;
            PageSQL page = null;

            if (dicPageQuery.TryGetValue(db, out pageSQL))
            {
                if (pageSQL.TryGetValue(query, out page))
                {
                    var dt = queryCache.GetDataTable(db, page.ID, pageNum);
                    if (dt == null && PageConfig.IsCacheFile)
                    {
                        return((DataTable)GetFile(db, page.ID, pageNum, true));
                    }
                    return(dt);
                }
            }
            else
            {
                Dictionary <string, DBQueryCache> cur = null;
                DBQueryCache cache = null;
                if (dicSQL.TryGetValue(db, out cur))
                {
                    if (cur.TryGetValue(query, out cache))
                    {
                        return(cache.GetDataTable(pageNum));
                    }
                }
            }
            return(null);
        }
コード例 #2
0
ファイル: QueryPage.cs プロジェクト: zyj0021/DBAcessSrv
        /// <summary>
        /// 获取model
        /// </summary>
        /// <param name="db"></param>
        /// <param name="query"></param>
        /// <param name="pageNum"></param>
        /// <returns></returns>
        public List <object> GetListModel(string db, string query, int pageNum)
        {
            if (!PageConfig.isMemory)
            {
                return(null);
            }
            Dictionary <string, PageSQL> pageSQL = null;
            PageSQL page = null;

            if (dicPageQuery.TryGetValue(db, out pageSQL))
            {
                if (pageSQL.TryGetValue(query, out page))
                {
                    var lst = queryCache.GetListModel(db, page.ID, pageNum);
                    if (lst == null && PageConfig.IsCacheFile)
                    {
                        return((List <object>)GetFile(db, page.ID, pageNum, true));
                    }
                    return(lst);
                }
            }
            else
            {
                Dictionary <string, DBQueryCache> cur = null;
                DBQueryCache cache = null;
                if (dicSQL.TryGetValue(db, out cur))
                {
                    if (cur.TryGetValue(query, out cache))
                    {
                        return(cache.GetListModel(pageNum));
                    }
                }
            }
            return(null);
        }
コード例 #3
0
ファイル: QueryPage.cs プロジェクト: zyj0021/DBAcessSrv
        /// <summary>
        /// 获取SQL语句
        /// </summary>
        /// <param name="db"></param>
        /// <param name="queryName"></param>
        /// <param name="pageNum"></param>
        /// <param name="min"></param>
        /// <param name="max"></param>
        /// <returns></returns>
        public string GetPageSql(string db, string queryName, int pageNum, int min = -1, int max = -1)
        {
            Dictionary <string, PageSQL> pageSQL = null;
            PageSQL page = null;

            if (dicPageQuery.TryGetValue(db, out pageSQL))
            {
                if (pageSQL.TryGetValue(queryName, out page))
                {
                    string sql = page.SQL;
                    if (pageNum > 1)
                    {
                        sql = sql.Replace("@Min", ((pageNum - 1) * PageConfig.PageSize).ToString());
                        sql = sql.Replace("@Max", (pageNum * PageConfig.PageSize).ToString());
                        return(sql);
                    }
                    else
                    {
                        sql = sql.Replace("@Min", min.ToString());
                        sql = sql.Replace("@Max", max.ToString());
                        return(sql);
                    }
                }
            }
            return(null);
        }
コード例 #4
0
ファイル: QueryPage.cs プロジェクト: zyj0021/DBAcessSrv
        /// <summary>
        /// 缓存数据
        /// </summary>
        /// <param name="db">数据库名称(配置名称)</param>
        /// <param name="queryName">业务查询名称</param>
        /// <param name="pageNum">页号</param>
        /// <param name="data">数据</param>
        public void Add(string db, string queryName, int pageNum, object data)
        {
            if (!PageConfig.isMemory)
            {
                return;
            }
            Dictionary <string, PageSQL> pageSQL = null;
            PageSQL page = null;
            long    id   = -1;

            if (dicPageQuery.TryGetValue(db, out pageSQL))
            {
                if (pageSQL.TryGetValue(queryName, out page))
                {
                    id = page.ID;
                }
            }
            if (id == -1)
            {
                //说明没有配置,则是SQL
                Dictionary <string, DBQueryCache> cur = null;
                DBQueryCache cache = null;
                if (dicSQL.TryGetValue(db, out cur))
                {
                    if (cur.TryGetValue(queryName, out cache))
                    {
                        if (data is DataTable)
                        {
                            cache.Add(pageNum, (DataTable)data);
                        }
                        else
                        {
                            cache.Add(pageNum, (List <object>)data);
                        }
                    }
                    else
                    {
                        cache          = new DBQueryCache(PageConfig.PageCacheNum);
                        cur[queryName] = cache;
                        if (data is DataTable)
                        {
                            cache.Add(pageNum, (DataTable)data);
                        }
                        else
                        {
                            cache.Add(pageNum, (List <object>)data);
                        }
                    }
                }
                else
                {
                    cache = new DBQueryCache(PageConfig.PageCacheNum);
                    if (data is DataTable)
                    {
                        cache.Add(pageNum, (DataTable)data);
                    }
                    else
                    {
                        cache.Add(pageNum, (List <object>)data);
                    }
                    cur            = new Dictionary <string, DBQueryCache>();
                    cur[queryName] = cache;
                    dicSQL[db]     = cur;
                }
            }
            else
            {
                object oldData = null;
                bool   isModel = false;
                if (data is DataTable)
                {
                    oldData = queryCache.Add(db, id, pageNum, (DataTable)data);
                }
                else
                {
                    oldData = queryCache.Add(db, id, pageNum, (List <object>)data);
                    isModel = true;
                }
                if (PageConfig.IsCacheFile && oldData != null)
                {
                    PutFile(db, id, pageNum, oldData, isModel);
                    SaveFile();
                }
                Validate();
            }
        }