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

48 篇文章 1 订阅
11 篇文章 0 订阅

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
    更改该控件值代码;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值