匹配问题
请看下面的代码:
static string Answer; //存储从数据库读出的密码保护的内容;
static string username; //获取文本框中的"用户名";
...
private void Submit1_ServerClick(object sender, System.EventArgs e)
{
username = user_name.Text; //取得用户名;
//设置连接数据库的变量;
string strConnection , strSQL;
SqlConnection objConnection = null;
SqlCommand objCommand = null;
SqlDataReader objDataReader = null;
//进行数据库的连接; (!!要对数据库进行修改!!)
try
{
strConnection = "server =127.0.0.1; uid = admin; pwd = admin; database = Friends";
strSQL = "SELECT * FROM user_info WHERE userName = '"+username+"'";
objConnection = new SqlConnection(strConnection);
objConnection.Open();
objCommand = new SqlCommand(strSQL , objConnection);
}
catch
{}
//驱动objDataReader;
objDataReader = objCommand.ExecuteReader();
if(objDataReader.Read())
{
question.Text = objDataReader["Question"].ToString(); //将密码保护的问题赋值给标签;
Answer = objDataReader["Answer"].ToString(); //将密码保护的答案赋值给变量;
//如果是存在记录才可以显示被隐藏的版面;
Panel1.Visible=false;
Panel2.Visible=true;
}
else
{
//Response.Write("<script>alert\"用户名不存在!请检查输入!\"</script>"); //如果没有匹配的记录,弹出警告窗口;
return;
}
objConnection.Close(); //关闭数据库的连接;
}
private void Submit2_ServerClick(object sender, System.EventArgs e)
{
************************************************************
if(answer.Text == Answer) //如果答案匹配,就将下一步的界面显示;
{
Panel1.Visible = false;
Panel2.Visible = false;
Panel3.Visible = true;
}
else
{
//Response.Write("<script>alert\"密码答案输入不正确!请检查输入!\"</script>");//如果答案不匹配,弹出警告窗口;
return;
}
}
问题出在了打"*"的下面的语句,我在上面一个函数中给全局变量Answer赋了从数据库中读到的密码保护答案的值,但是在页面中输入了正确的答案(文本框answer),确认为不相等。
我用“步进”的调试方法表明,执行的是else语句,不知道是怎么回事??
请各位高手不惜赐教。
顺便问一下:为什么不可以使用Response.Write("<script>alert\"密码答案输入不正确!请检查输入!\"</script>"); 语句?在运行时弹出有“脚本错误”的对话框,删除语句则没有对话框弹出。
解决了任一个题目都给分。
谢谢先!