/// <summary> /// 查询按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void b_commit_Click(object sender, EventArgs e) { ////计算时效取值 List <string> sx = new List <string> (); foreach (ListItem li in cbl_timeSX.Items) { if (li.Selected == true) { sx.Add(li.Value); } } if (sx != null) { try { string[] programInfo = ddl_program.SelectedValue.Split('#'); string programIDStr = programInfo[0]; int programID = Convert.ToInt32(programIDStr); int dtID = Convert.ToInt32(programInfo[1]); int ttID = Convert.ToInt32(programInfo[2]); //根据不同的时效取结果集 //如果是是一个时效或者全部时效,调用getData2函数,效率更高些 //全部时效,参数为null if (sx.Count == cbl_timeSX.Items.Count) { mRecordeData = dbll.getData2(programID, dtID, ttID, null, null); } else { switch (sx.Count) { case 0: /// <summary> /// 清除数据内容显示 /// 显示说明信息 /// syy 20130627 清除当前的记录的同时也清除前一天的记录信息 /// 清除解释代码 /// 清除Elment关系 /// </summary> resetVar(); break; case 1: int time = Convert.ToInt32(sx[0]); mRecordeData = dbll.getData2(programID, dtID, ttID, null, time); break; //部分时效,参数为24#48。。。 default: string times = ""; for (int i = 0; i < sx.Count; i++) { times += sx[i] + "#"; } times = times.Substring(0, times.Length - 1); mRecordeData = dbll.getData2X(programID, dtID, ttID, null, times); break; } } if (mRecordeData != null && mRecordeData.Length != 0) { //Element关系,Element01--天气 mElementRelation = dbll.getElementsName(programIDStr); //转码实际气象信息内容,Element01--00--晴 elTransCode = transElCode(programIDStr); //缺失或者数据异常站点信息 ExpStationMessage = new ExpStation(); //提示信息。频道、栏目、预报时间、数据类型等等 TipMessageInfo = new TipMessage(); TipMessageInfo.Channel = ddl_channel.SelectedItem.Text; TipMessageInfo.Program = ddl_program.SelectedItem.Text; int datatypeID = Convert.ToInt32(programInfo[1]); RecordeData[] rdDataType = dbll.getDataType(datatypeID); TipMessageInfo.DataType = rdDataType[0].DataTypeName + TipMessageInfo.DataTypeMessage; //为了避免第一行的数据ReportTime为NULL,取不出来,做循环取出结果值 DateTime rt = new DateTime(); for (int i = 0; i < mRecordeData.Length; i++) { if (mRecordeData[i].ReportTime != null) { rt = mRecordeData[i].ReportTime.Value; TipMessageInfo.ReportTime = mRecordeData[i].ReportTime.Value.ToString(); break; } } //取前一天的天气,进行气温对比 DateTime rtYesterday = rt.AddDays(-1); //根据不同的时效取结果集 //如果是是一个时效或者全部时效,调用getData2函数,效率更高些 //全部时效,参数为null if (sx.Count == cbl_timeSX.Items.Count) { mRecordeData_Pre = dbll.getData2(programID, dtID, ttID, rtYesterday, null); } else { switch (sx.Count) { case 0: mRecordeData_Pre = null; //不会走到 break; case 1: int time = Convert.ToInt32(sx[0]); mRecordeData_Pre = dbll.getData2(programID, dtID, ttID, rtYesterday, time); break; //部分时效,参数为24#48。。。 default: string times = ""; for (int i = 0; i < sx.Count; i++) { times += sx[i] + "#"; } times = times.Substring(0, times.Length - 1); mRecordeData_Pre = dbll.getData2X(programID, dtID, ttID, rtYesterday, times); break; } } gv_citydata.DataSource = mRecordeData; gv_citydata.DataBind(); showTipInfo(); // Label1.Text = "sssssssssssssssssssssss"; //内容显示 showContent(true); //清除说明 showIllustration(false); } } catch { resetVar(); } } }