public List <CEntityWarningInfo> QueryWarningInfo(DateTime startTime, DateTime endTime) { string sql = string.Format("select * from {0} where {1} between {2} and {3};", CT_TableName, CN_DataTime, base.DateTimeToDBStr(startTime), base.DateTimeToDBStr(endTime)); try { SqlDataAdapter adapter = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection()); DataTable dataTableTmp = new DataTable(); adapter.Fill(dataTableTmp); List <CEntityWarningInfo> results = new List <CEntityWarningInfo>(); for (int i = 0; i < dataTableTmp.Rows.Count; ++i) { CEntityWarningInfo entity = new CEntityWarningInfo(); entity.DataTime = DateTime.Parse(dataTableTmp.Rows[i][CN_DataTime].ToString()); entity.InfoDetail = dataTableTmp.Rows[i][CN_InfoDetail].ToString(); entity.WarningInfoID = long.Parse(dataTableTmp.Rows[i][CN_InfoID].ToString()); results.Add(entity); } return(results); } catch (System.Exception ex) { Debug.WriteLine("QueryWarningInfo Exception\n{0}", ex.ToString()); return(null); } }
// 添加新列 public void AddNewRow(CEntityWarningInfo entity) { // 记录超过1000条,或者时间超过1分钟,就将当前的数据写入数据库 m_mutexDataTable.WaitOne(); //等待互斥量 DataRow row = m_tableDataAdded.NewRow(); row[CN_DataTime] = entity.DataTime; row[CN_InfoDetail] = entity.InfoDetail; row[CN_InfoDetail] = entity.InfoDetail; if (entity.WarningInfoCodeType.HasValue) { row[CN_ErroCode] = CEnumHelper.WarningCodeTypeToDBStr(entity.WarningInfoCodeType.Value); } else { row[CN_ErroCode] = null; } row[CN_StationID] = entity.StrStationId.ToString(); m_tableDataAdded.Rows.Add(row); if (m_tableDataAdded.Rows.Count >= CDBParams.GetInstance().AddBufferMax) { // 如果超过最大值,写入数据库 base.NewTask(() => { AddDataToDB(); }); } else { // 没有超过缓存最大值,开启定时器进行检测,多次调用Start()会导致重新计数 m_addTimer.Start(); } m_mutexDataTable.ReleaseMutex(); }
public bool Add(CEntityWarningInfo entity) { m_mutexDataTable.WaitOne(); //等待互斥量 DataRow row = m_tableDataAdded.NewRow(); row[CN_DataTime] = entity.DataTime; row[CN_InfoDetail] = entity.InfoDetail; m_tableDataAdded.Rows.Add(row); m_mutexDataTable.ReleaseMutex(); return(AddDataToDB()); }
// 添加新列 public void AddNewRow(CEntityWarningInfo entity) { Dictionary <string, object> param = new Dictionary <string, object>(); List <CEntityWarningInfo> infoList = new List <CEntityWarningInfo>(); infoList.Add(entity); string suffix = "/warninginfo/insertWarninginfo"; string url = "http://" + urlPrefix + suffix; //string url = "http://127.0.0.1:8088/warninginfo/insertWarninginfo"; Newtonsoft.Json.Converters.IsoDateTimeConverter timeConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; string jsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(infoList, Newtonsoft.Json.Formatting.None, timeConverter); param["warninginfo"] = jsonStr; try { string resultJson = HttpHelper.Post(url, param); } catch (Exception e) { Debug.WriteLine("新增告警日志失败"); } //// 记录超过1000条,或者时间超过1分钟,就将当前的数据写入数据库 //m_mutexDataTable.WaitOne(); //等待互斥量 //DataRow row = m_tableDataAdded.NewRow(); //row[CN_DataTime] = entity.DataTime; //row[CN_InfoDetail] = entity.InfoDetail; //row[CN_InfoDetail] = entity.InfoDetail; //if (entity.WarningInfoCodeType.HasValue) //{ // row[CN_ErroCode] = CEnumHelper.WarningCodeTypeToDBStr(entity.WarningInfoCodeType.Value); //} //else //{ // row[CN_ErroCode] = null; //} //row[CN_StationID] = entity.StrStationId.ToString(); //m_tableDataAdded.Rows.Add(row); //if (m_tableDataAdded.Rows.Count >= CDBParams.GetInstance().AddBufferMax) //{ // // 如果超过最大值,写入数据库 // base.NewTask(() => { AddDataToDB(); }); //} //else //{ // // 没有超过缓存最大值,开启定时器进行检测,多次调用Start()会导致重新计数 // m_addTimer.Start(); //} //m_mutexDataTable.ReleaseMutex(); }