下面是我连接数据库的按钮事件
private async void btnLogin_Click(object sender, EventArgs e)
{
btnLogin.Text = "连接中";
btnLogin.Enabled = false;
//创建连接字符串
if (cbType.SelectedIndex == 0)
{
SQLHelper.Create(txtName.Text);
}
else
{
SQLHelper.Create(txtName.Text, txtAdmin.Text, txtPwd.Text);
}
await Task.Run(() =>
{
try
{
d = SQLHelper.GetDataBase();
MessageBox.Show("连接成功");
this.Close();//关闭窗体
}
catch (Exception)
{
MessageBox.Show("连接失败");
}
});
btnLogin.Text = "登录";
btnLogin.Enabled = true;
}
前面我说到过异步,通过async关键字实现异步操作,还要加上await,要不然这依然是一个同步事件,await后接Task.Run(),意思就是等待这个里面的委托执行完毕之后才会执行下面的代码,但是这个是异步操作,不影响UI,在这个里面可以加上你们连接数据库的代码,还可以放你需要的异步操作。设置按钮的Enabled属性是为了防止重复连接
求支持我的网站C#非常简单的SQL异步查询 http://www.494v.com/forum.php?mod=viewthread&tid=251&fromuid=1 (出处: 五秒论坛)