예제 #1
0
        private string ExecSqlJmsLayui(InterfaceModel response, IMicroService service, JmsCommand dbCommand, List <FilterCondition> filters)
        {
            XmlHelper   xmlHelp    = new XmlHelper();
            string      json       = "";
            LayuiResult dataResult = new LayuiResult();

            dataResult.code  = 0;
            dataResult.count = 0;
            dataResult.msg   = "";
            dataResult.data  = "{0}";

            object result = new object();

            switch (response.ExecuteType)
            {
            case "Scalar":
                result = service.Invoke <object>("ExecuteScalar", dbCommand);
                break;

            case "Int":
                result = service.Invoke <int>("ExecuteNonQuery", dbCommand);
                break;

            case "DataSet":
                DataSet   ds    = service.Invoke <DataSet>("Fill", dbCommand);
                DataTable table = new DataTable();
                if (filters != null)
                {
                    //复杂查询需要再过滤一下最后一个表
                    string msg;
                    string filter = this.CreateFileterString(filters, out msg);
                    if (msg != "")
                    {
                        throw new Exception(msg);
                    }
                    DataTable table0 = ds.Tables[0];
                    table0.DefaultView.RowFilter = filter;
                    DataTable dtNew = table0.DefaultView.ToTable();
                    table = dtNew;
                }
                else
                {
                    table = ds.Tables[0];
                }

                dataResult.count = table.Rows.Count;
                result           = table;
                break;
            }

            dataResult.data = result;
            if (response.SerializeType == "Xml")
            {
            }
            else if (response.SerializeType == "Json")
            {
                json = JsonConvert.SerializeObject(dataResult);
            }
            else
            {
                json = result.ToString();
            }

            return(json);
        }
예제 #2
0
        //返因LayUI的结构
        private string ExecSqlLayui(InterfaceModel response, IDbConnection connection, IDbDataAdapter sqlDA, IDbCommand cmd, List <FilterCondition> filters)
        {
            XmlHelper   xmlHelp    = new XmlHelper();
            string      json       = "";
            LayuiResult dataResult = new LayuiResult();

            dataResult.code  = 0;
            dataResult.count = 0;
            dataResult.msg   = "";
            dataResult.data  = "{0}";

            object result = new object();

            switch (response.ExecuteType)
            {
            case "Scalar":
                result = cmd.ExecuteScalar();
                break;

            case "Int":
                result = cmd.ExecuteNonQuery();
                break;

            case "DataSet":
                DataSet ds = new DataSet();
                sqlDA.Fill(ds);
                DataTable table = new DataTable();
                if (ds.Tables.Count > 0)
                {
                    if (filters != null)
                    {
                        //复杂查询需要再过滤一下最后一个表
                        string msg;
                        string filter = this.CreateFileterString(filters, out msg);
                        if (msg != "")
                        {
                            throw new Exception(msg);
                        }

                        //只过滤最后一个表
                        DataTable table0 = ds.Tables[ds.Tables.Count - 1];
                        table0.DefaultView.RowFilter = filter;
                        DataTable dtNew = table0.DefaultView.ToTable();
                        table = dtNew;
                    }
                    else
                    {
                        table = ds.Tables[0];
                    }

                    //测试数据最返最后10行
                    int nCount = 0;
                    if (this.context.Request.Headers.ContainsKey("NCS"))
                    {
                        bool bOK = context.Request.Headers.TryGetValue("NCS", out StringValues NCS);
                        if (bOK)
                        {
                            nCount = int.Parse(NCS.ToString());
                        }
                    }

                    if (nCount > 0)
                    {
                        table = DtSelectTop(nCount, table);
                    }
                }

                dataResult.count = table.Rows.Count;
                result           = table;
                break;
            }

            dataResult.data = result;
            if (response.SerializeType == "Xml")
            {
            }
            else if (response.SerializeType == "Json")
            {
                json = JsonConvert.SerializeObject(dataResult);
            }
            else
            {
                json = result.ToString();
            }

            return(json);
        }