static public DataTable GetDataSource(string sql, IDBQuery dbHelper, QueryParValueEvent queryEvent = null) { if (string.IsNullOrEmpty(sql)) { return(null); } if (dbHelper == null) { return(null); } string pars = GetSqlPars(sql); string strSql = ""; if (queryEvent == null) { strSql = SqlHelper.SqlParsToNull(sql, pars); } else { strSql = SqlHelper.SqlParsToReplaceParName(sql, pars); } Dictionary <string, JsonFieldMapItem> jsonField = null; strSql = FmtJsonDb(strSql, out jsonField); DataTable dt = new DataTable(); List <SqlParamInfo> sqlPars = null; if (queryEvent != null) { sqlPars = new List <SqlParamInfo>(); //配置查询参数 foreach (string curPar in pars.Split(',')) { object parValue = queryEvent(curPar); if (parValue != null) { if (parValue is DateTime) { sqlPars.Add(new SqlParamInfo(curPar, DbType.DateTime, parValue)); } else if (parValue is int) { sqlPars.Add(new SqlParamInfo(curPar, DbType.Int64, parValue)); } else if (parValue is double) { sqlPars.Add(new SqlParamInfo(curPar, DbType.Double, parValue)); } else if (parValue is string) { sqlPars.Add(new SqlParamInfo(curPar, DbType.String, parValue)); } else { sqlPars.Add(new SqlParamInfo(curPar, DbType.String, parValue)); } } else { sqlPars.Add(new SqlParamInfo(curPar, DbType.String, null)); } } } if (sqlPars != null) { dt = dbHelper.ExecuteSQL(strSql, sqlPars.ToArray()); } else { dt = dbHelper.ExecuteSQL(strSql); } if (jsonField.Count <= 0) { return(dt); } SqlHelper.JsonTableDataConvert(dt, 0, jsonField, dt.Rows.Count); return(dt); }
static public DataTable GetDataSource(string sql, string dbAlias, IDBQuery dbSys, QueryParValueEvent queryEvent = null) { if (string.IsNullOrEmpty(sql)) { return(null); } string strErr = ""; IDBQuery curHelper = SqlHelper.GetThridDBHelper(dbAlias, dbSys, ref strErr); if (curHelper != null) { return(GetDataSource(sql, curHelper, queryEvent)); } else { DialogResult dr = MessageBox.Show("数据源 [ " + dbAlias + "] 链接失败,失败信息:" + System.Environment.NewLine + " " + strErr, "提示"); return(null); } }
static public DataSet GetReportDataSource(IList <JReportTemplateQuery> dataSource, IDBQuery dbSys, QueryParValueEvent queryEvent = null) { if (dataSource == null) { return(null); } if (dataSource.Count <= 0) { return(null); } DataSet dsReport = new DataSet("报告数据集"); foreach (JReportTemplateQuery ds in dataSource) { DataTable dt = GetDataSource(ds.查询内容, ds.数据源别名, dbSys, queryEvent); dt.TableName = ds.查询名称; DataTable dtBind = new DataTable(ds.查询名称); dtBind.Columns.Add("ID", typeof(string)); dtBind.Columns.Add("DisplayName", typeof(string)); dtBind.Columns.Add("Value", typeof(string)); foreach (DataColumn dc in dt.Columns) { DataRow drNew = dtBind.NewRow(); drNew["DisplayName"] = dc.ColumnName; if (dt.Rows.Count > 0) { drNew["Value"] = dt.Rows[0][dc.ColumnName].ToString(); } dtBind.Rows.Add(drNew); } dsReport.Tables.Add(dtBind); } return(dsReport); }