private List <CEntityTSVoltage> CopyDataToList(int key, int startRow) { List <CEntityTSVoltage> result = new List <CEntityTSVoltage>(); // 取最小值 ,保证不越界 int endRow = Math.Min(m_mapDataTable[key].Rows.Count, startRow + CDBParams.GetInstance().UIPageRowCount); DataTable table = m_mapDataTable[key]; for (; startRow < endRow; ++startRow) { CEntityTSVoltage voltage = new CEntityTSVoltage(); // 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; } 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); }
public void AddNewRow(CEntityTSVoltage voltage) { 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); m_tableDataAdded.Rows.Add(row); m_mutexDataTable.ReleaseMutex(); AddDataToDB(); }