这是我的代码,当我单击注册按钮时,即使数据库中不存在错误消息,也向我显示“电子邮件已注册”和“用户名已被占用”的两个错误消息。
protected void Page_Load(object sender, EventArgs e) { if (con.State == ConnectionState.Open) { con.Close(); } con.Open(); } protected void fname_TextChanged(object sender, EventArgs e) { CultureInfo cI = Thread.CurrentThread.CurrentCulture; TextInfo textInfo = cI.TextInfo; fname.Text = textInfo.ToTitleCase(fname.Text); } protected void lname_TextChanged(object sender, EventArgs e) { CultureInfo cI = Thread.CurrentThread.CurrentCulture; TextInfo textInfo = cI.TextInfo; lname.Text = textInfo.ToTitleCase(lname.Text); } protected void register_Click(object sender, EventArgs e) { if (checkemail() == false && checkuname() == false) { SqlCommand cmd = con.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "insert into Users values('" + fname.Text + "','" + lname.Text + "','" + email.Text + "','" + uname.Text + "','" + password.Text + "')"; cmd.ExecuteNonQuery(); } if(checkemail() == true) { chkmail.Visible = true; mailerror.Text = "Email Address already Registered"; } if(checkuname() == true) { chkuname.Visible = true; unameerror.Text = "Username is taken!"; } } private Boolean checkemail() { Boolean emailavailable = false; SqlCommand cmd = con.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "select * from Users where emailId='" + email.Text + "'"; SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; DataSet ds = new DataSet(); da.Fill(ds); if (ds.Tables[0].Rows.Count > 0) { emailavailable = true; } return emailavailable; } private Boolean checkuname() { Boolean unameavailable = false; SqlCommand cmd = con.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "select * from Users where username='" + uname.Text + "'"; SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; DataSet ds = new DataSet(); da.Fill(ds); if (ds.Tables[0].Rows.Count > 0) { unameavailable = true; } return unameavailable; }
在这种情况下,我想要的实际输出是,如果给出了现有电子邮件,则应该给出电子邮件错误消息,如果给出了现有用户名,则应该给出用户名错误消息,如果数据库中同时存在这两种情况,则都应显示错误。请帮助提供此代码。
这是我的代码,当我单击注册按钮时,即使数据库中不存在错误消息,也向我显示“电子邮件已注册”和“用户名已被占用”的两个错误消息。 ...
您可以通过以下方式简化逻辑:
我会考虑将代码更改为类似于下面的示例: