Пример #1
0
        /// <summary>
        /// 查询数据库
        /// </summary>
        /// <returns></returns>
        private DataSet QueryDS(QueryDataSetModel dsm, DBT dbt = DBT.sqllite)
        {
            DataSet ds = new DataSet();

            string sql = string.Empty;

            switch (dbt)
            {
            case DBT.sqllite:
                sql = "SELECT " + dsm.columns + " FROM " + dsm.tableName + " WHERE " + dsm.whereStr + " ORDER BY " + dsm.orderBy + " LIMIT " + dsm.pageSize + " OFFSET " + dsm.pageSize * (dsm.pageIndex - 1);
                if (dsm.total)
                {
                    sql += "; select count(1) AS counts from " + dsm.tableName + " WHERE " + dsm.whereStr;
                    ds   = DB.HelperSQLite.Query(sql);
                }
                else
                {
                    ds = DB.HelperSQLite.Query(sql);
                }
                break;
            }

            return(ds);
        }
Пример #2
0
        public string QueryData(QueryInputModel qim)
        {
            //输入参数
            string KeyWords = string.Empty;

            if (!string.IsNullOrEmpty(Request["keywords"]))
            {
                KeyWords = Request["keywords"].ToString().OfSql();
            }

            //构查询实体
            QueryDataSetModel dsm = new QueryDataSetModel();

            dsm.pageIndex = Convert.ToInt32(Request["pageIndex"]);
            dsm.pageSize  = Convert.ToInt32(Request["pageSize"]);

            //点击标题排序
            string OrderBy = string.Empty;

            if (Request.Form["sortField"].ToString().Length > 1)
            {
                string[] sortField = Request.Form["sortField"].ToString().Split(',');
                string[] sortOrder = Request.Form["sortOrder"].ToString().Split(',');
                for (int i = 0; i < sortField.Length; i++)
                {
                    OrderBy += "," + sortField[i] + " " + sortOrder[i];
                }
                OrderBy = OrderBy.Substring(1);
            }

            switch (qim.uri.ToLower())
            {
                #region 公共查询

            //表格配置
            case "pptableconfig":
                dsm.tableName = "view_table_config";
                dsm.orderBy   = "l_order";
                dsm.whereStr  = "vname='" + Request["vname"].ToString().OfSql() + "'";
                dsm.total     = false;
                break;

            //菜单
            case "ppmenu":
                dsm.tableName = "sys_menu";
                dsm.orderBy   = OrderBy == "" ? "m_order" : OrderBy;
                dsm.whereStr  = "m_pid=0";
                dsm.total     = true;
                break;

                #endregion

                #region Setting 控制器

            //角色查询
            case "pprole":
                dsm.tableName = "sys_role";
                dsm.orderBy   = OrderBy == "" ? "id" : OrderBy;
                dsm.total     = true;
                break;

            //操作日志
            case "pplog":
                dsm.tableName = "sys_log";
                dsm.orderBy   = OrderBy == "" ? "l_datetime desc" : OrderBy;
                dsm.whereStr  = KeyWords != "" ? string.Format("l_user like '{0}%' or l_action ='%{0}%' or l_content ='%{0}%' or l_ip ='%{0}%'", KeyWords) : "";
                dsm.total     = true;
                break;

            //列表配置
            case "ppcolumn":
                dsm.tableName = "sys_column";
                dsm.orderBy   = OrderBy == "" ? "id" : OrderBy;
                dsm.whereStr  = KeyWords != "" ? string.Format("vname like '{0}%' or field ='{0}'", KeyWords) : "";
                dsm.total     = true;
                break;

            //按钮列表
            case "ppbutton":
                dsm.tableName = "sys_button";
                dsm.orderBy   = OrderBy == "" ? "b_pid,b_order" : OrderBy;
                break;

            //用户查询
            case "ppuser":
                dsm.tableName = "view_sys_user";
                dsm.orderBy   = OrderBy == "" ? "u_state" : OrderBy;
                dsm.whereStr  = KeyWords != "" ? string.Format("u_name like '%{0}%'", KeyWords) : "";
                dsm.total     = true;
                break;
                #endregion
            }

            if (dsm.tableName.Length == 0 || dsm.orderBy.Length == 0)
            {
                throw new Exception("查询传参错误,缺失表名或排序列");
            }

            //得到数据集
            DataSet ds = QueryDS(dsm, DBT.sqllite);

            //输出数据
            QueryOutputModel qom = new QueryOutputModel();
            if (dsm.total)
            {
                qom.total = Convert.ToInt32(ds.Tables[1].Rows[0][0]);
            }
            qom.data = ds.Tables[0];
            //第一次查询列配置
            if (Convert.ToInt32(Request["columnsExists"]) == 0)
            {
                qom.columns = QueryColumns(dsm.tableName);
            }
            //列配置表名
            qom.vname = dsm.tableName;

            return(qom.ToJson());
        }