C# 检索密码代码时,始终返回重试,而不是恢复密码
这是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
提前感谢如果运行查询并返回行,请尝试使用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";
}
}