需求:須要得出一個數據源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 }