public HttpResponseMessage GetOneHour_data(string vname, string btype, string strwhere) { string json = "[{data: "; try { RuletblEQIW_R_HourData_Auto rules = new RuletblEQIW_R_HourData_Auto(); if (strwhere == null || strwhere == "undefind") { strwhere = "" ; } DataTable dt = rules.getOneHour_Data(vname, strwhere); string sql1 = "select * from tblEQIW_R_Item_Auto"; DataTable tableitem = rule.getdt(sql1); DataRow dr = dt.NewRow(); dr["fldSTName"] = "城市名称"; dr["fldRName"] = "河流名称"; dr["fldRSName"] = "断面名称"; dr["fldDate"] = "监测日期"; dr["fldTime"] = "监测时间"; for (int i = 6; i < dt.Columns.Count; i++) { DataRow[] dataRows = tableitem.Select("fldItemCode='" + dt.Columns[i].ToString().Substring(3) + "'"); if (dataRows.Length > 0) { dr[dt.Columns[i].ToString()] = dataRows[0]["fldUnit"].ToString(); } } dt.Rows.InsertAt(dr, 0); string jsondt = JsonHelper.SerializeObject(dt); json += jsondt; #region 拼数据对应列名 json += ",head: ["; RuletblEQIA_R_Item itemnames = new RuletblEQIA_R_Item(); //拼标题并汉化 for (int i = 0; i < dt.Columns.Count; i++) { string engname = "'" + dt.Columns[i].ColumnName + "'"; DataTable dtDesc = rule.ChinesizeTitleNamebyViewName(vname, engname);//根据视图名称在字典表中查出对应字段的中文名称 if (dtDesc.Rows.Count > 0) { if (i == dt.Columns.Count - 1) { json += "'" + dtDesc.Rows[0]["fldFieldDesc"].ToString() + "']}]"; } else { json += "'" + dtDesc.Rows[0]["fldFieldDesc"].ToString() + "',"; } } else { string itemcode = dt.Columns[i].ColumnName.Substring(3); tblEQIA_R_Item name = itemnames.ByItemCodes(itemcode, btype, ""); if (i == dt.Columns.Count - 1) { //最后一列的时候添加“]”↓ json += "'" + name.fldItemName + "']}]"; } else { json += "'" + name.fldItemName + "',"; } } } #endregion if (dt.Rows.Count > 0) { json = rule.JsonStr("ok", "", json.ToString());//有数据 } else { json = rule.JsonStr("nodata", "没有数据", json.ToString());//没数据 } } catch (Exception e) { json = rule.JsonStr("error", e.Message, ""); } return(new HttpResponseMessage { Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json") }); }
public HttpResponseMessage GetAutoAvge(Query_WithDate_Info info) { string result = string.Empty; try { RuletblEQIW_R_HourData_Auto auto = new RuletblEQIW_R_HourData_Auto(); DataTable dt = null; //获得点位对应的因子 DataTable dt1 = new DataTable(); //string sql = "select * from tblRSNameCorItemName"; //dt1 = rule.getdt(sql); string sql1 = "select * from tblEQIW_R_Item_Auto"; DataTable tableitem = rule.getdt(sql1); //获得不同的数据源 if (info.type == "hour") { dt = auto.GetHourData(info.fldBeginDate, info.fldEndDate, info.fldSTCode, info.fldItemCode); dt.Columns.Remove("fldYear"); dt.Columns.Remove("fldMonth"); dt.Columns.Remove("fldDay"); dt.Columns.Remove("fldHour"); DataRow dr = dt.NewRow(); dr["fldSTName"] = "城市名称"; dr["fldSTCode"] = "城市代码"; dr["fldRName"] = "河流名称"; dr["fldRCode"] = "河流代码"; dr["fldRSName"] = "断面名称"; dr["fldRSCode"] = "断面代码"; dr["fldDate"] = "监测日期"; dr["fldTime"] = "监测时间"; for (int i = 8; i < dt.Columns.Count; i++) { DataRow[] dataRows = tableitem.Select("fldItemName='" + dt.Columns[i].ToString() + "'"); if (dataRows.Length > 0) { dr[dt.Columns[i].ToString()] = dataRows[0]["fldUnit"].ToString(); } } dt.Rows.InsertAt(dr, 0); } else { //获得均值 dt = auto.GetAutoAvg(info.type, info.fldBeginDate, info.fldEndDate, info.fldSTCode, info.fldItemCode); dt.Columns.Remove("fldYear"); dt.Columns.Remove("fldMonth"); dt.Columns.Remove("fldDay"); dt.Columns.Remove("fldCount"); DataRow dr = dt.NewRow(); dr["fldSTName"] = "城市名称"; dr["fldSTCode"] = "城市代码"; dr["fldRName"] = "河流名称"; dr["fldRCode"] = "河流代码"; dr["fldRSName"] = "断面名称"; dr["fldRSCode"] = "断面代码"; dr["fldDate"] = "监测日期"; for (int i = 7; i < dt.Columns.Count; i++) { DataRow[] dataRows = tableitem.Select("fldItemName='" + dt.Columns[i].ToString() + "'"); if (dataRows.Length > 0) { dr[dt.Columns[i].ToString()] = dataRows[0]["fldUnit"].ToString(); } } dt.Rows.InsertAt(dr, 0); } //替换空值和没有仪器的值 for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { ////先判断断面代码 //if (dt.Rows[i]["fldRSName"].ToString() == dt1.Rows[j]["fldRSCName"].ToString()) //{ // string coritem = dt1.Rows[j]["fldItemName"].ToString(); // //再判断因子 // for (int h = 8; h < dt.Columns.Count; h++) // { // //不包含这个因子 且数据为空时为无仪器的数据 // if (!coritem.Contains(dt.Columns[h].ColumnName.ToString()) && dt.Rows[i][h].ToString() == "") // { // dt.Rows[i][h] = "无仪器"; // } // //包含这个因子 但是没有数据用/表示 // if (coritem.Contains(dt.Columns[h].ColumnName.ToString()) && dt.Rows[i][h].ToString() == "") // { // dt.Rows[i][h] = "/"; // } // } //} if (dt.Rows[i][j].ToString() == "") { dt.Rows[i][j] = "-"; } } } result = rule.JsonStr("ok", "", dt); } catch (Exception e) { result = rule.JsonStr("error", e.Message, ""); } return(new HttpResponseMessage { Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json") }); }