public void showtime(object sender, System.Timers.ElapsedEventArgs e)//扫描数据库,每S调用这条函数一次! 
        { 
            //System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; 
            ArrayList arrayAirTime = xml.getAirTime();//从配置文件取出设定的时间 
            ArrayList arrayTable = xml.getTableName();//从配置文件取出表名 
            //int t = 0; 
            
            for (int n = 0; n  < arrayTable.Count; n++)   //遍历所有的表                                
            {               double m = Convert.ToDouble(arrayAirTime[n]);//从配置文件取出设置好的时间 
              double t = DB.CheckDB(Convert.ToString(arrayTable[n]));//取出时间差               //if (Convert.ToInt32(DB.checkStaID(Convert.ToString(arrayTable[n]))) == 1 && falg[n] == false)//如果是真,显示黄灯 
              //{ 
              //    this.AlarmStateLbl(Convert.ToString(arrayTable[n])); 
              //} 
                     if (t >  m && falg[n] == false)//判断是否超时 
                 { 
                     DateTime airTimeError = DB.GetTime(Convert.ToString(arrayTable[n]));//取出数据库里最后一条数据的Datatime 
                    ErrorStateLbl(Convert.ToString(arrayTable[n]));//选择那个控件亮红灯 
                    string info = "超时"; 
                    DB.InsertError(airTimeError, Convert.ToString(arrayTable[n]), info);//把错误信息插入数据库 
                    falg[n] = true; 
                } 
                  if (t  < m && falg[n] == true)//判断是否恢复 
                { 
                     DateTime airTimeRestore= DB.GetTime(Convert.ToString(arrayTable[n]));//取出数据库里最后一条数据的Datatime 
                     RestoreStateLbl(Convert.ToString(arrayTable[n]));//选择对应的控件亮绿灯 
                     string info = "恢复"; 
                     DB.InsertError(airTimeRestore, Convert.ToString(arrayTable[n]), info);//把恢复信息插入数据库 
                     falg[n] = false; 
                }                  
                 
            } 
                 } 
///  <summary> 
        /// 取数据库里最后一条数据的Datatime 
        ///  </summary> 
        ///  <param name="tableName"> 取Datatime的表名 </param> 
        ///  <returns> Datatime </returns>         public DateTime GetTime(string tableName) 
        { 
            //double miao = 0; 
            DateTime t = DateTime.MinValue; 
            //DateTime tstart = DateTime.Now; 
            //strineng r = DateTime.Now.ToString(); 
            cmd.Connection = getCon(); 
            cmd.CommandText = "select TOP 1 * from " + tableName + " order by Datetime desc"; 
            SqlDataReader dr = cmd.ExecuteReader(); 
             while (dr.Read()) 
            { 
                t = dr.GetDateTime(1);             } 
            dr.Close(); 
            con.Close(); 
            con.Dispose(); 
            return t; 
        } 
        ///  <summary> 
        /// 扫描数据库 
        ///  </summary> 
        ///  <param name="tableName"> 扫描的表 </param> 
        ///  <returns> 数据库最后一条数据的Datatime和目前时间的差 </returns> 
        public double CheckDB(string tableName) 
        { 
            
            DateTime t = DateTime.MinValue; 
             
            cmd.Connection = getCon(); 
            cmd.CommandText = "select TOP 1 * from " + tableName + " order by Datetime desc"; 
           // cmd.CommandText = "select TOP 1 * from date order by id desc"; 
             
            SqlDataReader dr = cmd.ExecuteReader(); 
            while (dr.Read()) 
            { 
                t = dr.GetDateTime(1); 
            } 
            dr.Close(); 
            con.Close(); 
            con.Dispose(); 
            TimeSpan ts = new TimeSpan(); 
            ts = DateTime.Now - Convert.ToDateTime(t);             //return ts.Days * 24 * 60+ ts.Hours * 60+ ts.Minutes * 60; 
            return ts.TotalDays;             
        } 
///  <summary> 
/// 插入错误表 
///  </summary> 
///  <param name="time"> 发生错误的时间 </param> 
///  <param name="air"> 发生错误的表 </param> 
///  <param name="info"> 错误信息 </param> 
                 public void InsertError(DateTime time, string tabelName, string info) 
        { 
            cmd.Connection = getCon(); 
            cmd.CommandText = "insert into ErrorInfo(datatime,air,Error) values( '" + time + "','" + tabelName + "', '" + info + "')"; 
             cmd.ExecuteNonQuery(); 
             con.Close(); 
            con.Dispose(); 
        }