C# 检索密码代码时,始终返回重试,而不是恢复密码

C# 检索密码代码时,始终返回重试,而不是恢复密码,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,这是C代码 代码不显示错误,但它不工作 如果有人得到纠正,请帮助 提前感谢如果运行查询并返回行,请尝试使用HasRows 像这样: if (dr.HasRows) dr.Read(); Label2.Text = dr[0].ToString(); else Label2.Text = "try again"; 试试这个 while(dr.Read()) { if (dr.HasRows) { Label2.Text = dr["passwor

这是C代码

代码不显示错误,但它不工作

如果有人得到纠正,请帮助


提前感谢

如果运行查询并返回行,请尝试使用HasRows

像这样:

if (dr.HasRows)
    dr.Read();
    Label2.Text = dr[0].ToString();
else
    Label2.Text = "try again";
试试这个

while(dr.Read())
 {
    if (dr.HasRows)
   {
     Label2.Text = dr["password"].ToString();
   }
  else
   {
     Label2.Text = "try again";
   }
 }

您是否调试了代码并检查了变量?到底是什么不起作用?你的专栏是什么类型的?您的查询是否返回SSMS中的任何数据?您应该始终使用参数化查询。这种字符串缩合对SQL注入攻击是开放的。并使用using语句来处理sql连接和命令。在db中执行相同的查询并检查它是否真的存在?获取上述错误。实际上,当从dropdownlist中选择时,它将零存储在secQue字段中。谢谢你的导航。但我仍然不明白为什么dropdownlist存储零而不是从dropdownlist中选择的值这是dropdownlist代码con.Open();seqQue.DataTextField=“seqQue”;seqQue.DataValueField=“SQId”;seqQue.DataSource=cmd11.ExecuteReader();seqQue.DataBind();seqQue.Items.Insert(0,新列表项(“---------------------------------------选择-----------------”,“0”);con.Close();请告诉我,您并没有在数据库中以明文形式存储密码。。。。如果有一行没有下一行要读取,则dr.read()返回false,我不这么认为。
SqlDataReader
的默认位置在开始时的第一条记录之前。这就是为什么,OP必须调用
Read
才能开始访问任何数据。是的,我把它弄混了,它在一行返回true,在下一行返回false。但是它不需要在dr.HasRows之前使用dr.Read()。
while(dr.Read())
 {
    if (dr.HasRows)
   {
     Label2.Text = dr["password"].ToString();
   }
  else
   {
     Label2.Text = "try again";
   }
 }