选择密码字段并按条件在文本框中显示



我有一个带有 4 个文本框字段的窗口表单:用户名、问题、出生日期和密码。

如果输入的信息正确(用户名、问题和出生日期文本框(并按下"确定"按钮,我想从数据库表中加载并显示密码。

        SqlConnection myConn = new SqlConnection(myConnection);
        SqlCommand SelectCommand = new SqlCommand("select PassWord from dbo.Admin where UserName = '" + this.UserName.Text + "' and Question= '" + this.Question.Text + "' and DateOfBirth= '" + this.DateOfBirth.Text + "';", myConn);
        SqlDataReader myReader;
        myConn.Open();
        myReader = SelectCommand.ExecuteReader();
        PassShow.Text = myReader["PassWord"].ToString();
        myConn.Close();

我使用 VS 2015,用 c# 和 VS 的 db 编写它。

调试时出现此错误:System.Data 中发生类型为"System.InvalidOperationException"的未处理异常.dll

其他信息:不存在数据时尝试读取无效。

如果只想返回一行和一列,请改用以下内容:

PassShow.Text = SelectCommand.ExecuteScalar()?.ToString();

否则,您必须检查读取器是否获得了任何结果行,然后才能保存地访问它们:

using (SqlDataReader myReader = SelectCommand.ExecuteReader())
{
    if (myReader.HasRows && myReader.Read())
        PassShow.Text = myReader.GetString("PassWord");
}

这对我来说非常有效:

        myReader = SelectCommand.ExecuteReader();
        if (myReader.HasRows && myReader.Read())
        {
            PassShow.Text = (myReader["PassWord"].ToString());
        }
        myConn.Close();

最新更新