/// <summary> /// 保存报警数据(判断数据库里面10秒钟前有没有相同的报警,有的话更新数据,没有插入) /// </summary> /// <param name="coalCode"></param> /// <param name="type"></param> /// <param name="datas"></param> private void AlarmAnalydata(string coalCode, string type, string datas) { //'3001101','1-1','瓦斯','模拟量','采区1','%','0','4','1','.5','.5','.48','2011/12/26 11:52:06','2011/12/26 11:52:16','10','0','','1.42','2011/12/26 11:52:06','1'Ï string sql; ServerAnalys serverAnalys = new ServerAnalys(this.WsDownvalue, this.WsUpvalue, this.CODownvalue, this.COUpvalue); string[] dataList = null; dataList = serverAnalys.AlarmAnalys(datas).Split('Ï'); int dataListCount = dataList.Length; for (int i = 0; i < dataListCount; i++) { if (dataList[i].Contains(",")) { string[] data = dataList[i].Split(','); string[] DateTime = data[12].Split('\''); //SELECT * FROM [SafetyNetworking].[dbo].[TN_AlarmRecode] where CoalCode= '3001101' and DevCode= '1-1' and AlarmETime >'2011-12-26 11:51:06' sql = "SELECT * FROM [SafetyNetworking].[dbo].[TN_AlarmRecode] where CoalCode = " + data[0] + " and DevCode= " + data[1] + " and AlarmETime >= '" + Convert.ToDateTime(DateTime[1]).AddSeconds(-10).ToString() + "'"; DataSet ds = DQuery(sql); if (ds.Tables[0].Rows.Count > 0) { int Duration = Convert.ToInt32(ds.Tables[0].Rows[0]["Duration"]) + Convert.ToInt32(data[14].Split('\'')[1]); if (Convert.ToDecimal(ds.Tables[0].Rows[0]["DevMaxValue"]) < Convert.ToDecimal(data[17].Split('\'')[1])) { sql = "UPDATE [SafetyNetworking].[dbo].[TN_AlarmRecode] SET [AlarmETime] = " + data[13].ToString() + ", [Duration] = '" + Duration.ToString() + "' , [DevMaxValue] = " + data[17] + ", [DevMaxTime] = " + data[18] + " where CoalCode = " + data[0] + " and DevCode= " + data[1] + " and AlarmETime >= '" + Convert.ToDateTime(DateTime[1]).AddSeconds(-10).ToString() + "'"; } else { sql = "UPDATE [SafetyNetworking].[dbo].[TN_AlarmRecode] SET [AlarmETime] = " + data[13].ToString() + " , [Duration] = '" + Duration.ToString() + "' where CoalCode = " + data[0] + " and DevCode= " + data[1] + " and AlarmETime >= '" + Convert.ToDateTime(DateTime[1]).AddSeconds(-10).ToString() + "'"; } } else { sql = SQL_INSERT_ALARMRECODE; sql += "SELECT "; sql += dataList[i]; } ExecuteAnalySqlByTranscation(sql); } } }