我将combox的下拉菜单绑定了一个数据库,但是数据库更新后,要重新打开软件,combox才能刷新,有什么办法使数据库和combox同步更新??

解决方案 »

  1.   

    定时刷新,如果同一进程修改则通知Combox更新数据源
      

  2.   

    后台线程或timer定时检查更新
      

  3.   

     System.Timers.Timer aTimer = new System.Timers.Timer();
                aTimer.Elapsed += new ElapsedEventHandler(theout);  //到达时间的时候执行事件;            aTimer.Interval = 1000; // 设置引发时间的时间间隔 此处设置为1秒(1000毫秒)
                aTimer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
                aTimer.Enabled = true;  public void theout(object source, System.Timers.ElapsedEventArgs e)
            {
             }运行下来出现错误:线程间操作无效: 从不是创建控件“comboBox1”的线程访问它。
      

  4.   

    运行下来出现错误:线程间操作无效: 从不是创建控件“comboBox1”的线程访问它??这个怎么解决
      

  5.   

    解决了,但是combox的item会一直添加下去??
      

  6.   

    这样可以:你看看是你想要的效果吗
             public SqlConnection conn;
            public SqlDataReader sdr;
            //窗体激活的时候发生,只要已激活就会重新更新数据
            private void Form1_Activated(object sender, EventArgs e)
            {
                conn =new SqlConnection( @"Data Source=.\MSSQLSERVER1;Initial
    Catalog=ktv_xiaobao;User ID=sa;Password=sa");
                conn.Open();
                SqlCommand cmd = new SqlCommand("select xiao_name from ktv_xiao",conn);
                sdr = cmd.ExecuteReader();
                while (sdr.Read())
                {
                    string name = sdr["xiao_name"].ToString().Trim();
                    comboBox1.Items.Add(name);
                }
                conn.Close();
            }速度来看