private CEntityStation GenerateStationFromUI() { try { if (!AssertInputValid()) { return(null); } // 读取界面数据,并构建一个站点实体类 CEntityStation station = new CEntityStation(); station.StationID = textBox_StationID.Text.Trim(); //去掉空格 station.StationName = textBox_StationName.Text; station.SubCenterID = CDBDataMgr.Instance.GetSubCenterByName(cmb_SubCenter.Text).SubCenterID; station.StationType = CEnumHelper.UIStrToStationType(cmb_StationType.Text); if (!textBox_WaterBase.Text.Trim().Equals("")) { // 设置了水位基值 station.DWaterBase = Decimal.Parse(textBox_WaterBase.Text.Trim()); } if (!textBox_WaterChange.Text.Trim().Equals("")) { // 设置了水位变化 station.DWaterChange = Decimal.Parse(textBox_WaterChange.Text.Trim()); } if (!textBox_WaterMax.Text.Trim().Equals("")) { // 设置了水位最大值 station.DWaterMax = Decimal.Parse(textBox_WaterMax.Text.Trim()); } if (!textBox_WaterMin.Text.Trim().Equals("")) { // 设置了水位最小值 station.DWaterMin = Decimal.Parse(textBox_WaterMin.Text.Trim()); } if (station.StationType == EStationType.ERainFall || station.StationType == EStationType.EHydrology) { // 雨量精度不能为空 try { station.DRainAccuracy = float.Parse(cmb_RainAccuracy.Text); } #pragma warning disable CS0168 // 声明了变量“e”,但从未使用过 catch (Exception e) #pragma warning restore CS0168 // 声明了变量“e”,但从未使用过 { station.DRainAccuracy = 0.5f; } } if (!textBox_RainChange.Text.Trim().Equals("")) { // 设置了雨量变化 station.DRainChange = Decimal.Parse(textBox_RainChange.Text.Trim()); } if (!textBox_Voltage.Text.Trim().Equals("")) { // 设置了电压阀值 station.DVoltageMin = float.Parse(textBox_Voltage.Text.Trim()); } if (!textBox_GSM.Text.Trim().Equals("")) { string gsmNum = textBox_GSM.Text.Trim(); //if (!CStringUtil.IsDigitStrWithSpecifyLength(gsmNum, 11)) //{ // MessageBox.Show("GSM号码参数不合法,长度必须为11位,必须全部是数字!"); // return null; //} if (!CStringUtil.IsDigit(gsmNum)) { MessageBox.Show("GSM号码参数不合法,必须全部是数字!"); return(null); } // 设置了GSM号码 station.GSM = gsmNum; } //if (!textBox_GPRS.Text.Trim().Equals("")) //{ // //GPRS号码 // string gprsNum = textBox_GPRS.Text.Trim(); // if (!CStringUtil.IsDigit(gprsNum)) // { // MessageBox.Show("GPRS号码参数不合法,必须全部是数字!"); // return null; // } station.GPRS = textBox_GPRS.Text.Trim(); //} if (!textBox_Beidou.Text.Trim().Equals("")) { string bdNum = textBox_Beidou.Text.Trim(); if (!CStringUtil.IsDigit(bdNum)) { MessageBox.Show("北斗卫星终端号码参数不合法,必须全部是数字!"); return(null); } // 北斗卫星号码 station.BDSatellite = bdNum; } if (!textBox_BeidouMember.Text.Trim().Equals("")) { string bdNum = textBox_BeidouMember.Text.Trim(); if (!CStringUtil.IsDigit(bdNum)) { MessageBox.Show("北斗卫星成员号码参数不合法,必须全部是数字!"); return(null); } // 北斗卫星号码 station.BDMemberSatellite = bdNum; } station.Maintran = comb_MainRoad.Text; station.Subtran = comb_PrepareRoad.Text; station.Rainsensor = comb_RainSensor.SelectedIndex.ToString(); station.Watersensor = comb_WaterSensor.SelectedIndex.ToString(); station.DataProtocol = comb_DataProtocol.Text; //station.DRainAccuracy = float.Parse(cmb_RainAccuracy.Text.ToString()); station.Reportinterval = comb_Paragraph.Text; //if (!textBox_BeidouMember.Text.Trim().Equals("")) //{ // string bdNum = textBox_BeidouMember.Text.Trim(); // if (!CStringUtil.IsDigit(bdNum)) // { // MessageBox.Show("北斗卫星成员号码参数不合法,必须全部是数字!"); // return null; // } // // 北斗卫星号码 // station.BDMemberSatellite = bdNum; //} //if (comb_MainRoad.Text == "SX-GPRS" || comb_PrepareRoad.Text == "GPRS") //{ //} return(station); } #pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过 catch (Exception ex) #pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过 { return(null); } }
// 检验输入是否有效 private bool AssertInputValid() { try { // 1. stationId 不能为空, 也不能重复,只能占用四个字节 string stationId = textBox_StationID.Text.Trim(); if (stationId.Equals("")) { MessageBox.Show("测站编号不能为空"); return(false); } // 判断测站编号是否为4位数字 if (stationId.Length != 4) { MessageBox.Show("请输入正确的4位测站编号"); return(false); } // 判断编号是否为负数 try { int.Parse(stationId); } catch (System.Exception) { MessageBox.Show("站点编号不能含有非法字符"); return(false); } for (int i = 0; i < m_listStationCombination.Count; ++i) { if (m_listStationCombination[i].StationID.Trim() == stationId) { //MessageBox.Show(string.Format("测站站号不能重复!编号 \"{0}\" 与测站 \"{1}\" 重复", // stationId, m_listStationCombination[i].StationName.Trim())); MessageBox.Show(string.Format("水情测站站号不能重复!已存在水情测站{0}", stationId)); return(false); } } for (int i = 0; i < m_listSoilStation.Count; ++i) { if (m_listSoilStation[i].StationID.Trim() == stationId) { MessageBox.Show(string.Format("水情测站站号不能与墒情测站编号一样!已存在墒情测站{0}", stationId)); return(false); } } if (comb_MainRoad.Text.ToString() == "SX-GPRS" || comb_PrepareRoad.Text.ToString() == "SX-GPRS" || comb_MainRoad.Text == "HD-GPRS" || comb_PrepareRoad.Text == "HD-GPRS") { string gprs = textBox_GPRS.Text.Trim(); if (gprs.Equals("")) { MessageBox.Show("GPRS号码不能为空!"); return(false); } else { //GPRS号码 // string gprsNum = textBox_GPRS.Text.Trim(); if (!CStringUtil.IsDigit(gprs)) { MessageBox.Show("GPRS号码参数不合法,必须全部是数字!"); return(false); } else { } } for (int i = 0; i < m_listStationCombination.Count; ++i) { if (m_listStationCombination[i].GPRS.Trim() == gprs) { MessageBox.Show(string.Format("水情测站Gprs不能重复!与水情站{0} gprs号码一样 ", m_listStationCombination[i].StationID.Trim())); return(false); } } for (int i = 0; i < m_listSoilStation.Count; ++i) { if (m_listSoilStation[i].GPRS.Trim() == gprs) { MessageBox.Show(string.Format("水情测站Gprs不能重复!与墒情站{0} gprs号码一样 ", m_listSoilStation[i].StationID.Trim())); return(false); } } } if (System.Text.Encoding.Default.GetByteCount(stationId) > 4) { MessageBox.Show("测站ID字符数不能超过4个"); return(false); } // 2. 站名不能为空,不能超过50个字符 if (textBox_StationName.Text.Trim().Equals("")) { MessageBox.Show("站名不能为空"); return(false); } if (System.Text.Encoding.Default.GetByteCount(textBox_StationName.Text.Trim()) > 50) { MessageBox.Show("站名不能超过50个字符"); return(false); } // 3. 站类不能为空 if (cmb_StationType.Text.Equals("")) { MessageBox.Show("站点类型不能为空"); return(false); } // 4. 分中心不能为空 if (cmb_SubCenter.Text.Equals("")) { MessageBox.Show("分中心不能为空"); return(false); } // 5. 雨量精度不能为空,如果是水文站或者雨量站 EStationType type = CEnumHelper.UIStrToStationType(cmb_StationType.Text); if (type == EStationType.EHydrology || type == EStationType.ERainFall) { if (cmb_RainAccuracy.Text.Equals("")) { MessageBox.Show("雨量精度不能为空"); return(false); } } // 6. 水位基值合法 if (!textBox_WaterBase.Text.Equals("")) { try { Decimal.Parse(textBox_WaterBase.Text); } catch (System.Exception ex) { MessageBox.Show("请输入正确的水位基值" + ex.Message); return(false); } } // 7. 水位变化合法 if (!textBox_WaterChange.Text.Equals("")) { try { if (Decimal.Parse(textBox_WaterChange.Text) < 0) { MessageBox.Show("水位阀值不能为负!"); return(false); } } catch (System.Exception ex) { MessageBox.Show("请输入正确的水位变化值" + ex.Message); return(false); } } // 8. 水位最大值合法 if (!textBox_WaterMax.Text.Equals("")) { try { Decimal.Parse(textBox_WaterMax.Text); } catch (System.Exception ex) { MessageBox.Show("请输入正确的水位最大值" + ex.Message); return(false); } } // 9. 水位最小值 if (!textBox_WaterMin.Text.Equals("")) { try { Decimal.Parse(textBox_WaterMin.Text); } catch (System.Exception ex) { MessageBox.Show("请输入正确的水位最小值" + ex.Message); return(false); } } // 10. 雨量变化合法 if (!textBox_RainChange.Text.Equals("")) { try { if (Decimal.Parse(textBox_RainChange.Text) < 0) { MessageBox.Show("雨量阀值不能为负!"); return(false); } } catch (System.Exception ex) { MessageBox.Show("请输入正确的雨量变化值" + ex.Message); return(false); } } // 11. 电压下限合法 if (!textBox_Voltage.Text.Equals("")) { try { if (float.Parse(textBox_Voltage.Text) < 0) { MessageBox.Show("电压阀值不能为负!"); return(false); } } catch (System.Exception) { MessageBox.Show("请输入正确的电压阀值"); return(false); } } return(true); #pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过 }catch (Exception ex) #pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过 { return(false); } }