SQL模板和模板實例化

需求:須要得出一個數據源DataTable,我已知SQL和HttpRequest如何,經過SQL模板的方式去實例化匹配HttpRequest中的參數實例化爲查詢SQL,最後返回DataTablesql

 

一、SQL模板spa

 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

 

二、SQL實例化code

 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         }

 三、查詢數據並返回blog

1  using (var db = new OracleDB())
2 {
3     return db.ExecuteDataTable(sql);
4 }
相關文章
相關標籤/搜索