gpt4 book ai didi

c# - 当我加载数据库时,使用带有 LINQtoSQL 的 .mdf 数据库的 WPF C# 程序卡住了一点

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:06 25 4
gpt4 key购买 nike

好的,我在按钮单击事件中运行了以下代码,以便比较用户提供的用户名和密码。

public static bool isAuthenticated(string Username, string Password)
{
//Open a connection with the database
using (WHDataDataContext db = new WHDataDataContext())
{
//Compare the Username and the password and return the result
return db.Users.Any(check => check.Username == Username && check.Password == Cryptographer.Encrypt(Password));
}
}

我的问题是,当我按下按钮时,程序会卡住片刻然后它会响应。

我已经在带有 .sdf 文件 (SQL CE) 的 C# 应用程序上使用了这段代码,但我没有遇到过这个问题。

有人可以帮忙吗?

最佳答案

这是因为您正在 UI 线程中执行阻塞事件(如数据库查询)。尝试使用 BackgroundWorker

using (var worker = new BackgroundWorker())
{
worker.DoWork += (theSender, theArgs) =>
{
theArgs.Result = isAuthenticated(userName, password);
};
worker.RunWorkerCompleted += (theSender, theArgs) =>
{
bool isValid = (bool)theArgs.Result;
if(!isValid)
{
MessageBox.Show("Not Authenticated!!");
}
};
worker.RunWorkerAsync();
}

关于c# - 当我加载数据库时,使用带有 LINQtoSQL 的 .mdf 数据库的 WPF C# 程序卡住了一点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25086186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com