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());
        }
Beispiel #4
0
        // 添加新列
        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();
        }