票务预订系统:数据库访问问题

时间:2019-10-25 03:05:51

标签: c# asp.net ado.net

我正在创建公交车票预订系统。我创建了一个名为traveler的数据库,并分别创建了两个名为Useriden和BusDB的表。在aspx.cs文件(“注册”页面)中,我正在检查重复的用户名,但它只是导航到下一页

我已经尝试了所有方法,但无法解决此问题。我没有收到任何错误或警告。

protected void BtnConfirmSignup_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection("Data Source=(localdb)\\MSSQLlocalDB;Initial Catalog=traveller;Integrated Security=True;Pooling=False");
        SqlCommand cmd;
        SqlDataReader read;
        /*DEBUG: Prevent duplicate usernames*/
        try
        {
            Session["user"] = TxtUsrName.Text;
            Session["pass"] = TxtPsswd.Text;
            Session["email"] = TxtEmail.Text;

            cmd = new SqlCommand("select Name from Useriden",con);
            con.Open();
            read = cmd.ExecuteReader();
            while (read.Read()) {
                if ((read["Name"].ToString()).Equals(TxtUsrName.Text))
                {
                    throw new Exception("Invalid Username");

                }
                else
                {
                    Response.Redirect("SignUpNext.aspx");
                }
            }
        }
        catch (Exception ex) {
            LabelUserName.Visible = true;
            LabelUserName.Text = ex.Message;
            con.Close();
            ViewState["Caption"]=ex.Message;
            }
      }

在单击确认按钮时,它应检查重复的用户名。我的表Useriden中已经有一个名为“ Faf”的记录。当我尝试使用相同的用户名进行注册时,它不会引发异常,而是会导航到SignUp.aspx。

仅当有一条记录时,重复检查才有效。我将修改逻辑,以便它不仅可以用于记录,而且现在,甚至不能用于单个记录。

0 个答案:

没有答案