首页 > 代码库 > SQL模板和模板实例化

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_INFO10  WHERE PLACEID = :%PLACEID%11  GROUP BY STIME, PLACEID, PLACENAME12  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 }

 

SQL模板和模板实例化