首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Winform程序下Datagridview的使用有关问题

2013-03-26 
Winform程序下Datagridview的使用问题。我在winform下加了一个datagridview控件,想让他显示本地数据库中的

Winform程序下Datagridview的使用问题。
我在winform下加了一个datagridview控件,想让他显示本地数据库中的一个表内容。我绑定了数据源,如图
[img=http://b251.photo.store.qq.com/psb?/V13E5cTC2ZosjS/BRDm11PZEGfrnfjCtmIk.zi52WTBXIt9E9QTAdhwrYU!/b/dESvoZX.CQAA&bo=7gEkAew!][/img]

因为表格中的数据是不断变化的,所以我想让表格中的数据每5秒刷新一下。显示当前表格中的内容。
所以,我在load中添加了一个线程,让他执行刷新事件。线程代码如下


          //启动 短信记录刷新 线程名称为 newthread3
          newthread3 = new Thread(new ThreadStart(t_record_flash));
          newthread3.IsBackground = true; 
          newthread3.Start();


定义了t_record_flash()

public void t_record_flash( ) //短信记录刷新事件
        {
            while (true)
            {
                try
                {
                    this.t_historyTableAdapter.Fill(this.messageMedomDataSet.t_history);
                }
                catch(System.Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }
                Thread.Sleep(5000); //5秒之后再次执行该时间,不停刷新
            }
        }


现在我运行程序,会出现如下图错误。
[img=http://b251.photo.store.qq.com/psb?/V13E5cTC2ZosjS/8m5kPD7HSF376sQrgUao*x8yK*cbaMqCIK19GsxYv9Q!/b/dFo1o5X9CgAA&bo=fgGqAPM!][/img]

。。但是如果我在  While(true)处打上断点,一步一步执行,也没发现什么错误啊。。。求大神 谢谢
[解决办法]
你所说的功能没有必要用线程来实现啊,用一个TIMER就行了。而且我实现起来更加简单
[解决办法]
用TIMER吧,不用考虑访问UI线程的问题
[解决办法]

这个是数据绑定错误,不是流程上面的。
[解决办法]
trimer 啊..........在trimer中重新绑定数据库就得了...或者你要是觉得你的方法可行,就在你的方法中重新绑定数据吧.
[解决办法]
一个事件中多次改变UI显示的内容,UI显示的内容只会接受第一次后最后一次事件改变的结果。因此你在每次事件结束,强制刷新一下UI。datagridview.Refresh();
[解决办法]
如果不用自动刷新数据 第一次绑定数据会有问题吗
[解决办法]
引用:
一个事件中多次改变UI显示的内容,UI显示的内容只会接受第一次后最后一次事件改变的结果。因此你在每次事件结束,强制刷新一下UI。datagridview.Refresh();

这样做重绘也很可能报出异常。
------解决方案--------------------


是不是因该update 你这样 是不停的忘里面塞数据啊 
我觉得应该就是fill的问题 重复添加啊主键值 

热点排行