Я создаю систему бронирования автобусных билетов. Я создал базу данных под названием traveller и две таблицы с именами 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;
}
}
При нажатии на кнопку подтверждения, он должен проверить наличие дублирующих имен пользователей. У меня уже есть одна запись с именем "Faf" в моей таблице Useriden. Когда я пытаюсь зарегистрироваться, используя то же имя пользователя, он не выдает исключение, вместо этого он переходит к SignUp.aspx.
Дублирующая проверка действительна только при наличии одной записи. Я изменю логику так, чтобы она работала не только для записи, но сейчас она не работает даже для одной записи.