并且该块需要太多时间才能工作catch
代码本身在这里
private void btnVhod_Click(object sender, RoutedEventArgs e)
{
EditInfo editInfo = new EditInfo();
try
{
foreach (var user in AvtoServicEntities.GetContext().Users)
{
if (logBox.Text == user.Login && passBox.Password == user.Password)
{
Visibility = Visibility.Hidden;
UpdateLayout();
if (user.iDRole == 1)
{
editInfo.EditFrame.Navigate(new ClientPahe());
editInfo.Show();
}
else if (user.iDRole == 2)
{
editInfo.EditFrame.Navigate(new ManegerPahe());
editInfo.btnManeger.Visibility = Visibility.Visible;
editInfo.btnClient.Visibility = Visibility.Visible;
editInfo.btnManeger.IsEnabled = false;
editInfo.Show();
}
else if (user.iDRole == 3)
{
editInfo.EditFrame.Navigate(new AdmManegerPahe());
editInfo.Show();
}
break;
}
else if (logBox.Text != user.Login || passBox.Password != user.Password)
{
if (logBox.Text == user.Login && passBox.Password != user.Password)
{
MesBox.MesBoxErrorPassword();
break;
}
else if (passBox.Password == user.Password && logBox.Text != user.Login)
{
MesBox.MesBoxErrorLogin();
break;
}
}
else if (logBox.Text != user.Login && passBox.Password != user.Password)
{
MesBox.MesBoxErrorLoginPassword();
break;
}
}
}
catch
{
MesBox.MesBoxErrorServer();
}
}

或多或少是这样的:
但是,您的代码很慢,不是因为您正在检查与服务器的连接,而是因为您正在循环访问 Users 表中的所有记录。可能值得用可以执行服务器端获取的 LINQ 查询重写它: