winform中数据库更新后如何让窗体自动刷新?大概有100个客户端,如果用Timer,那效率太低了,请高手指教

如题所述

第1个回答  2012-06-04
如果是自动刷新窗体中数据表,那太简单了.更新数据的函数后,加一个让引用 dataGridViewRefesh(); 这样dataGridView重新加载并刷新数据了.
void dataGridViewRefesh()
{
dataGridView1.DataSource = null;
SqlConnection con = new SqlConnection(@"server=(local);Integrated security=SSPI;database=你的数据库名");
SqlDataAdapter Ader=new SqlDataAdapter("select * from [你的表名]",con);
DataSet Dset;
Ader.Fill(Dset,"Table1");
dataGridView1.DataSource=Dset.Table["Table1"].DefaultView;
dataGridView1.Refresh();
Dset.Dispose();
Ader.Dispose();
con.Close();
}
第2个回答  2012-06-04
这个没啥好办法。要不主动后台线程更新。要不被动依靠数据库缓存依赖。

你要觉着主动不爽,可以试试看“数据库缓存依赖”,或者自己实现推送服务
第3个回答  2012-06-04
如果你的客户端是直接连接数据库的,那么没办法,只能用timer定时更新。
如果你是通过服务端连接的,那么可以让服务端在更新后发送消息给客户端自动更新。
第4个回答  推荐于2020-12-10
你可以百度一下socket了解一下机制
如果你愿意或者时间充裕的话半个月玩会socket 还是很划算的
但是就算你学会了socket 还是要大范围改你的程序代码

这要看你的项目有多大了
就100个客户端的话 无视吧 不要小看你的服务器和数据库本回答被提问者采纳
第5个回答  2012-06-04
异步回调即可

或是在方法中重新绑定即可,
相似回答