我正在创建公交车票预订系统。我创建了一个名为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。
仅当有一条记录时,重复检查才有效。我将修改逻辑,以便它不仅可以用于记录,而且现在,甚至不能用于单个记录。