如何捕获文本验证错误或数据库中表中不存在的不正确值

本文关键字:不存在 不正确 数据库 文本 何捕获 验证 错误 | 更新日期: 2023-09-27 18:09:39

我有一个登录窗口,用户应该输入用户ID密码如果文本框为空或输入的值不正确,那么程序应该捕捉到这显示错误消息
我已经写了这段代码,但它只在两个文本框为空时才有效,而在其中一个文本框为空或输入ID或密码的值不正确的情况下,程序没有反应。我的代码有什么问题…关于

 private void loginbtn_Click(object sender, EventArgs e)
        { 
            try {
                id = Convert.ToInt32(empIdtxt.Text);
                cn.Open();
                SqlCommand cmd = new SqlCommand("select empId,empPass from emp where empId='" + empIdtxt.Text + "' and empPass='" + passtxt.Text + "'", cn);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    SqlCommand cmd2 = new SqlCommand("insert into empLogin (empId,empPerm) select empId,empPerm from emp where empId='" + empIdtxt.Text + "'", cn);
                    cmd2.ExecuteNonQuery();
                    MainFrm mainfrm = new MainFrm(id);
                    mainfrm.Show();
                    this.Hide();
                }
            }
            catch
            {
                MessageBox.Show("User ID or password invalid or incorrect","Invalid ID or password",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }
            finally
            {
                cn.Close();
            }

如何捕获文本验证错误或数据库中表中不存在的不正确值

您缺少if (dt.Rows.Count > 0)else块。此外,使用bind variables而不是将值嵌入到查询中是一个很好的实践。