winforms 如何在运行数据搜索Windows窗体(C# net 4.8)时使按钮可主动单击?

wsxa1bj1  于 2023-04-21  发布在  Windows
关注(0)|答案(1)|浏览(100)

我的代码目前在using括号内:

using (SqlConnection con = new SqlConnection(connectionString))
            {
                SqlDataReader reader;

                con.Open();
                SqlCommand cmd = new SqlCommand();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
.....

而且,当搜索发生时,所有的UI控件都是不可点击的。例如,我有一个“中止”按钮,如果搜索时间太长,可以结束搜索,但由于后台搜索正在发生,该按钮不可点击。
我所尝试的:

private void abort_Click(object sender, EventArgs e)
        {
            SqlConnection connection = new SqlConnection();
            connection.Close();

        }

但是,当SQL连接在Windows窗体GUI中保持打开状态时,我又一次无法单击任何UI控件。
有什么想法或变通办法吗?

tzcvj98z

tzcvj98z1#

有一个ADO.NET方法的异步实现,如下所示:https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/asynchronous-programming
或者,您可以 checkout BackgroundWorker类(因为您使用的是Windows窗体)或Task类。

相关问题