我在做ASP.Net网站时用C#语言编写,现在添加用户的页面上有一个“Button”按钮,下面是其“Button”的单击代码:
protected void Button1_Click(object sender, EventArgs e)
{
OleDbDataReader dr = db.ExecuteReader("SELECT * FROM w_user WHERE w_name='" + w_name.Text + "'");
if (dr.Read())
{
Response.Write("<script>alert('用户名重复,请更换其他ID!')</script>");
}
else
{
string password = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text, "MD5");
db.ExecuteNonQuery("INSERT INTO w_user (w_name,w_pass) VALUES ('" + w_name.Text + "','" + password + "')");
Response.Write("<script>alert('添加成功!')</script>");//弹出提示信息
}
dr.Close();
Response.Redirect("admin_admin.aspx");
}
代码看似没有任何问题,当我单击按钮时,代码却并没有按照预期的执行。if语句似乎只是一个摆设,直接执行else里面的代码,奇怪吧?
我这是添加用户的页面,比如说表里面已经有一个“admin”的用户,当我填写表单时故意将用户名填成“admin”,提交表单时应该提示“用户名重复……”才对,可是没有,代码直接跳过,执行else里面的插入数据库操作,最后跳转到admin_admin.aspx页面。
这让我很困惑,究竟是什么原因造成这种状况呢?
后来,我无意中将Response.Redirect("admin_admin.aspx")这行代码删除时,却发现前面的代码执行就变得一切正常。
这是否算C#语言的BUG呢?