sql-server 如果找不到用户名,如何检查数据库

bxgwgixi  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(216)
string constr = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\jettp\Downloads\MockTest\MockTest\Database1.mdf;Integrated Security=True";

using (SqlConnection con = new SqlConnection(constr))
{
        using (SqlCommand cmd = new SqlCommand("SELECT Name, Weight FROM MyWeight where Name ='" + txt_Name.Text + "'"))
        {
            cmd.CommandType = CommandType.Text;
            cmd.Connection = con;

            con.Open();

            using (SqlDataReader sdr = cmd.ExecuteReader())
            {
                if (txt_Name.Text != null)
                {
                    sdr.Read();
                    MessageBox.Show("Username is found");

                    txt_Name.Text = sdr["Name"].ToString();
                    txt_Weight.Text = sdr["Weight"].ToString();
                    con.Close();
                }
                else
                {
                    lbl_WarningMsg.Text = "Name not found";
                    con.Close();
                }
            } 
        } 
}

我试着用这个命令来搜索用户名,它是在找不到数据库,但数据库消息一直说,该名称是在数据库中找到的.这是我得到的错误:
系统操作无效异常:'没有数据时读取尝试无效'

kdfy810k

kdfy810k1#

因为if条件始终为真,所以您将得到Username is found。请将if条件更改为:

if (sdr.HasRows)
{
    //your code
}

相关问题