C# 测试SQL数据库连接时 winform 界面如何实时刷新控件

时间:2022-08-22 13:39:03

vs2010下C#Winform程序:
我想实现的功能是,点击“测试数据库连接”按钮,在界面上,显示进度条,或者显示一个Label内容是倒计时读秒。

所用的方法一:添加控件timer:
System0.Windows.Forms.Timer     timer1;
时间间隔设为1秒
添加时间响应:...tick....
碰到的问题是:数据库连接失败后,计时器才被触发,才开始数秒。

所用的方法二:添加控件ProcessBar:
碰到的问题样:数据库连接失败后,ProcessBar才被触发,才开始刷新进度。

以上问题,原因是什么?哪位大侠有解决方法,请赐教。O(∩_∩)O谢谢

 

提问者采纳

如果是我会这样写
1 数据库操作类(只列出涉及到的 变量或函数)
申明三个事件 OnConnecting和OnConnected和OnErrorConnect()

某个操作函数
using(SqlConnection conn= new SqlConnection(connstr))
{
//初始化工作比如cmd的弄上sql或者其他dataadapter的初始化和赋上变量
OnConnecting();
conn.Open(); //catch一下,若exception则调用error事件
OnConnected();
}

2 界面控制
当触发数据库操作前绑定相关事件,然后再事件处理函数里面更改界面控件的值
因为事件的线程和UI线程是不同的
因此事件处理中需要这样调用
if(某个控件.Invokerequired)
{
某个控件.Invoke( 更新该控件的处理的匿名代理);
}
else
更改该控件值代码;