zoukankan      html  css  js  c++  java
  • SQL模板和模板实例化

    需求:需要得出一个数据源DataTable,我已知SQL和HttpRequest如何,通过SQL模板的方式去实例化匹配HttpRequest中的参数实例化为查询SQL,最后返回DataTable

    1、SQL模板

     1 SELECT 
     2        SUBSTR(PLACENAME, instr(PLACENAME, '-') + 1) 场景名,
     3        COUNT(*) 小区数,
     4        SUM(ALARMCOUNT) 流量TB,
     5        ROUND(SUM(USERCOUNT)) 在线用户,
     6        SUM(TOTALFLOW) 高负荷小区数,
     7        TO_CHAR(ROUND(AVG(DOWNPRBRATE), 2), 'fm9999990.00') || '%' 小区严重告警,
     8        SUM(BURTHENCOUNT) 下行PRB利用率
     9   FROM V_CHILDSCENE_REAL_INFO
    10  WHERE PLACEID = ':%PLACEID%'
    11  GROUP BY STIME, PLACEID, PLACENAME
    12  ORDER BY 高负荷小区数 DESC

    2、SQL实例化

     1 private string CreateSQL(string sql, HttpRequest req) {
     2             IList<string> list = new List<string>();
     3             if (sql.IndexOf(":%") > -1)
     4             {
     5                 var mat = Regex.Matches(sql, "(?<=:%)[^%]+(?=%)");
     6                 foreach (Match item in mat)
     7                 {
     8                     list.Add(item.Value);
     9                 }
    10                 foreach (var item in list)
    11                 {
    12                     sql = sql.Replace(":%" + item + "%", req[item]);
    13                 }
    14             }
    15             return sql;
    16         }

     3、查询数据并返回

    1  using (var db = new OracleDB())
    2 {
    3     return db.ExecuteDataTable(sql);
    4 }
  • 相关阅读:
    页面跳转刷新
    表格表头绘制对角线(不固定表格宽高)
    发送邮件的工具类
    重写equals()和hashCode()
    设计模式--原型模式[转载]
    设计模式--外观模式
    设计模式--代理模式
    js处理json js递归
    MySQL锁详解
    开发一个微信小程序实例教程
  • 原文地址:https://www.cnblogs.com/cbread/p/5923558.html
Copyright © 2011-2022 走看看