您现在的位置:首 页 >> 计算机 >> 查看文章
这是否算C#语言的BUG?
文/王以轩

 
 

  我在做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呢?

 
 

日期:2010-01-28 04:52:13 浏览次数:174
作品版权所有,未经『王以轩』同意,其他媒体一律不得转载
Copyright © 2006-2009 Wyxuan.Com All Rights Reserved .