如果 sql server 关闭,登录表单会崩溃

问题描述 投票:0回答:1

我的代码有问题,但我找不到问题所在...... 我有一台服务器,上面安装了 SQL Server。我的数据库在服务器上运行。我将服务器数据库连接到我的程序,当我在程序中输入登录详细信息时,它就会进入(到目前为止一切顺利)。 但我想测试一下,如果服务器关闭并且数据库关闭,当我输入登录详细信息时,会出现错误消息“服务器关闭!”出现。但是,当服务器出现故障并且我尝试输入我的程序并输入登录数据时,它会无限崩溃。 我现在的代码:

private void btnEntrar_Click(object sender, EventArgs e)
{
    String username, user_password;
    username = txt_user.Text;
    user_password = txt_pw.Text;

    try
    {
        String querry = "SELECT * FROM login WHERE username = '" + txt_user.Text + "' AND password = '" + txt_pw.Text + "'";
        SqlDataAdapter sda = new SqlDataAdapter(querry, conn);

        DataTable dtable = new DataTable();
        sda.Fill(dtable);


        if (dtable.Rows.Count > 0 && txt_user.Text == username && txt_pw.Text == user_password)
        {
            username = txt_user.Text;
            user_password = txt_pw.Text;

            // Salvar as credenciais se "Lembrar-me" estiver marcado
            if (cb_lembrarpw.Checked)
            {
                Properties.Settings.Default.username = txt_user.Text;
                Properties.Settings.Default.password = txt_pw.Text;
                Properties.Settings.Default.Save();
            }
            else
            {
                // Limpar as credenciais salvas
                Properties.Settings.Default.username = string.Empty;
                Properties.Settings.Default.password = string.Empty;
                Properties.Settings.Default.Save();
            }

            Form_Inicio form2 = new Form_Inicio();
            form2.Show();
            this.Hide();
        }

        else
        {
            MessageBox.Show("Login inválido", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            txt_user.Clear();
            txt_pw.Clear();

            txt_user.Focus();
        }
    }
    catch
    {
        MessageBox.Show("Erro de conexão ao servidor!","Erro", MessageBoxButtons.OK);
    }
    finally
    {
        conn.Close();
    }
}

我尝试删除部分代码以查看它是否来自某个地方,但我找不到导致程序崩溃的原因。

c# winforms
1个回答
0
投票

尝试在连接字符串中添加超时。例如字符串连接字符串=“...;连接超时=”

© www.soinside.com 2019 - 2024. All rights reserved.