public List <CEntityVoltage> QueryForRateMonthTable(CEntityStation station, DateTime startTime, DateTime endTime) { List <CEntityVoltage> results = new List <CEntityVoltage>(); string stationID = station.StationID; try { CTF_TableName = "voltage" + startTime.Year.ToString() + startTime.Month.ToString() + (startTime.Day < 15 ? "A" : "B"); CTT_TableName = "voltage" + endTime.Year.ToString() + endTime.Month.ToString() + (endTime.Day < 15 ? "A" : "B"); string sql = "select * from " + CF_TableName + " where stationid = " + stationID + " and convert(VARCHAR, " + CN_DataTime + ", 120) LIKE '%00:00%' and datatime between '" + startTime + "' and '" + endTime + "' and messagetype = 8;"; SqlDataAdapter adapter = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection()); DataTable dataTableTmp = new DataTable(); adapter.Fill(dataTableTmp); for (int i = 0; i < dataTableTmp.Rows.Count; ++i) { CEntityVoltage res = new CEntityVoltage(); res.TimeCollect = DateTime.Parse(dataTableTmp.Rows[i][CN_DataTime].ToString()); res.type = dataTableTmp.Rows[i][CN_TransType].ToString(); results.Add(res); } } catch { } return(results); }
// 添加新列 public void AddNewRow(CEntityVoltage voltage) { // 记录超过1000条,或者时间超过1分钟,就将当前的数据写入数据库 m_mutexDataTable.WaitOne(); //等待互斥量 DataRow row = m_tableDataAdded.NewRow(); row[CN_StationId] = voltage.StationID; row[CN_DataTime] = voltage.TimeCollect.ToString(CDBParams.GetInstance().DBDateTimeFormat); row[CN_Voltage] = voltage.Voltage; row[CN_MsgType] = CEnumHelper.MessageTypeToDBStr(voltage.MessageType); row[CN_TransType] = CEnumHelper.ChannelTypeToDBStr(voltage.ChannelType); row[CN_RecvDataTime] = voltage.TimeRecieved.ToString(CDBParams.GetInstance().DBDateTimeFormat); row[CN_State] = voltage.state; m_tableDataAdded.Rows.Add(row); m_mutexDataTable.ReleaseMutex(); // 判断是否需要创建新分区 //CSQLPartitionMgr.Instance.MaintainVoltage(voltage.TimeCollect); if (m_tableDataAdded.Rows.Count >= CDBParams.GetInstance().AddBufferMax) { // 如果超过最大值,写入数据库 NewTask(() => { AddDataToDB(); }); } else { // 没有超过缓存最大值,开启定时器进行检测,多次调用Start()会导致重新计数 m_addTimer.Start(); } }
//1009gm public List <CEntityVoltage> QueryForRateTable(CEntityStation station, DateTime date) { List <CEntityVoltage> results = new List <CEntityVoltage>(); DateTime startTime = date; DateTime endTime = startTime.AddHours(23).AddMinutes(59).AddSeconds(59); string stationID = station.StationID; try { string sql = "select * from " + CT_TableName + " where stationid = " + stationID + " and convert(VARCHAR, " + CN_DataTime + ", 120) LIKE '%00:00%' and datatime between '" + startTime + "' and '" + endTime + "'and messageType = 8;"; SqlDataAdapter adapter = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection()); DataTable dataTableTmp = new DataTable(); adapter.Fill(dataTableTmp); for (int i = 0; i < dataTableTmp.Rows.Count; ++i) { CEntityVoltage res = new CEntityVoltage(); res.TimeCollect = DateTime.Parse(dataTableTmp.Rows[i][CN_DataTime].ToString()); res.type = dataTableTmp.Rows[i][CN_TransType].ToString(); results.Add(res); } } catch { } return(results); }
public CStationDataAddForm() { InitializeComponent(); InitUI(); m_currentStation = null; m_entityRain = null; m_entityVoltage = null; m_entityWater = null; FormHelper.InitUserModeEvent(this); }
public void InitVoltageData() { Random random = new Random(); DateTime currentDate = DateTime.Now.Date; List <CEntityVoltage> lists = new List <CEntityVoltage>(); for (int i = 0; i < 24 * 10; ++i) { CEntityVoltage voltage = new CEntityVoltage(); voltage.TimeCollect = currentDate; voltage.Voltage = random.Next(1000, 4000); currentDate = currentDate.AddHours(1).AddMinutes(5).AddSeconds(1); lists.Add(voltage); } m_chartVoltage.AddVoltages(lists); }
// 生成更新过的数据列表 private void GetUpdatedData() { // 如果标记为删除的就不需要再更新了 List <int> listUpdatedRows = new List <int>(); for (int i = 0; i < m_listEditedRows.Count; ++i) { if (!m_listMaskedDeletedRows.Contains(m_listEditedRows[i])) { // 如果不在删除列中,则需要更新 listUpdatedRows.Add(m_listEditedRows[i]); } } // 获取更新过的数据 for (int i = 0; i < listUpdatedRows.Count; ++i) { CEntityVoltage voltage = new CEntityVoltage(); // voltage.VoltageID = long.Parse(base.Rows[listUpdatedRows[i]].Cells[CS_VoltageID].Value.ToString()); voltage.StationID = m_strStaionId; voltage.TimeCollect = DateTime.Parse(base.Rows[listUpdatedRows[i]].Cells[CS_TimeCollected].Value.ToString()); voltage.TimeRecieved = DateTime.Parse(base.Rows[listUpdatedRows[i]].Cells[CS_TimeReceived].Value.ToString()); voltage.Voltage = Decimal.Parse(base.Rows[listUpdatedRows[i]].Cells[CS_Voltage].Value.ToString()); // 数据状态 string tmpDataState = base.Rows[listUpdatedRows[i]].Cells[CS_DataState].Value.ToString(); if (tmpDataState.Equals(CS_DataState_Normal)) { voltage.state = 1; } else if (tmpDataState.Equals(CS_DataState_AbNormal)) { voltage.state = 0; } voltage.MessageType = CEnumHelper.UIStrToMesssageType(base.Rows[listUpdatedRows[i]].Cells[CS_MsgType].Value.ToString()); voltage.ChannelType = CEnumHelper.UIStrToChannelType(base.Rows[listUpdatedRows[i]].Cells[CS_ChannelType].Value.ToString()); m_listUpdated.Add(voltage); } // 获取删除过的数据 for (int i = 0; i < base.m_listMaskedDeletedRows.Count; ++i) { // m_listDeleteVoltage.Add(long.Parse(base.Rows[m_listMaskedDeletedRows[i]].Cells[CS_VoltageID].Value.ToString())); m_listDeleteVoltages_StationId.Add(base.Rows[m_listMaskedDeletedRows[i]].Cells[CS_StationID].Value.ToString()); m_listDeleteVoltages_StationDate.Add(base.Rows[m_listMaskedDeletedRows[i]].Cells[CS_TimeCollected].Value.ToString()); } m_listEditedRows.Clear(); //清空此次记录 m_listMaskedDeletedRows.Clear(); //清空标记为删除的记录 }
// 将Map中由key指定的DataTable,从startRow开始返回界面最大行数的集合 private List <CEntityVoltage> CopyDataToList(int key, int startRow) { List <CEntityVoltage> result = new List <CEntityVoltage>(); // 取最小值 ,保证不越界 int endRow = Math.Min(m_mapDataTable[key].Rows.Count, startRow + CDBParams.GetInstance().UIPageRowCount); DataTable table = m_mapDataTable[key]; for (; startRow < endRow; ++startRow) { CEntityVoltage voltage = new CEntityVoltage(); // voltage.VoltageID = long.Parse(table.Rows[startRow][CN_VoltageID].ToString()); voltage.StationID = table.Rows[startRow][CN_StationId].ToString(); voltage.TimeCollect = DateTime.Parse(table.Rows[startRow][CN_DataTime].ToString()); if (!table.Rows[startRow][CN_Voltage].ToString().Equals("")) { voltage.Voltage = Decimal.Parse(table.Rows[startRow][CN_Voltage].ToString()); } else { voltage.Voltage = -9999; } if (table.Rows[startRow][CN_State].ToString() != "") { try { voltage.state = int.Parse(table.Rows[startRow][CN_State].ToString()); } #pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过 catch (Exception ex) { } #pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过 } else { voltage.state = 1; } voltage.TimeRecieved = DateTime.Parse(table.Rows[startRow][CN_RecvDataTime].ToString()); voltage.ChannelType = CEnumHelper.DBStrToChannelType(table.Rows[startRow][CN_TransType].ToString()); voltage.MessageType = CEnumHelper.DBStrToMessageType(table.Rows[startRow][CN_MsgType].ToString()); result.Add(voltage); } return(result); }
/// <summary> /// 根据界面的数据,生成添加的实体类 /// </summary> private void GenerateAdddedDate() { if (chk_Rain.CheckState == CheckState.Checked) { // 新建雨量记录 m_entityRain = new CEntityRain(); m_entityRain.StationID = m_currentStation.StationID; m_entityRain.TimeCollect = dtp_CollectTime.Value; m_entityRain.TimeRecieved = dtp_TimeReceived.Value; m_entityRain.MessageType = CEnumHelper.UIStrToMesssageType(cmb_DataType.Text); m_entityRain.ChannelType = CEnumHelper.UIStrToChannelType(cmb_ChannelType.Text); //m_entityRain.PeriodRain = number_PeriodRain.Value; //m_entityRain.DayRain = number_DayRain.Value; m_entityRain.TotalRain = number_TotalRain.Value; m_entityRain.BState = 1;//默认是正常的 } if (chk_Water.CheckState == CheckState.Checked) { // 新建水位记录 m_entityWater = new CEntityWater(); m_entityWater.StationID = m_currentStation.StationID; m_entityWater.TimeCollect = dtp_CollectTime.Value; m_entityWater.TimeRecieved = dtp_TimeReceived.Value; m_entityWater.MessageType = CEnumHelper.UIStrToMesssageType(cmb_DataType.Text); m_entityWater.ChannelType = CEnumHelper.UIStrToChannelType(cmb_ChannelType.Text); m_entityWater.WaterStage = number_WaterStage.Value; m_entityWater.WaterFlow = number_WaterFlow.Value; m_entityWater.state = 1; } if (chk_Voltage.CheckState == CheckState.Checked) { // 新建电压记录 m_entityVoltage = new CEntityVoltage(); m_entityVoltage.StationID = m_currentStation.StationID; m_entityVoltage.TimeCollect = dtp_CollectTime.Value; m_entityVoltage.TimeRecieved = dtp_TimeReceived.Value; m_entityVoltage.MessageType = CEnumHelper.UIStrToMesssageType(cmb_DataType.Text); m_entityVoltage.ChannelType = CEnumHelper.UIStrToChannelType(cmb_ChannelType.Text); m_entityVoltage.Voltage = number_Voltage.Value; m_entityVoltage.state = 1; } }
// 添加电压记录 public void AddVoltage(CEntityVoltage entity) { m_listAdded.Add(entity); }