好的,我基本上是在尝试验证输入的用户名是否重复,但是while循环中的字符串比较出现了问题
我尝试使用临时标签来验证是否正确提取了这些值。
protected void BtnConfirmSignup_Click(object sender, EventArgs e)
{
int f = 0;
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;
//Label6.Text = "Faf";
// if ((Label6.Text).Equals(TxtUsrName.Text))
//{
// Label6.Text = "dafuqqqq";
//}
//{
// Label6.Text = "wtf";
// Label6.Text = TxtUsrName.Text;
//}
cmd = new SqlCommand("select Name from Useriden", con);
con.Open();
read = cmd.ExecuteReader();
while (read.Read())
{
Label6.Text = read["Name"].ToString();
Label1.Text = "aaa";
//Label6.Text = "Faf";
if ((Label6.Text).Equals(TxtUsrName.Text))
{
f = 1;
//Label6.Text = "Duplicate Username";
break;
}
}
if (f == 1)
{
Label6.Text = "Duplicate Username";
}
else if (f == 0)
{
Response.Redirect("SignUpNext.aspx");
}
}
catch (Exception ex)
{
LabelUserName.Visible = true;
LabelUserName.Text = ex.Message;
con.Close();
ViewState["Caption"]=ex.Message;
}
}预期:我正在输入一个重复的名称,所以它应该将标签的文本更改为重复的用户名,但它会导航到下一页/f的值永远不会改变。
发布于 2019-10-26 02:34:43
为了补充@EdPlunkett在Ordinal案例中指出的...您还应该确保没有额外的空格。
Label6.Trim().Text.Equals(TxtUsrName.Text.Trim(), StringComparison.OrdinalIgnoreCase)附注:您似乎也不会关闭您的SqlConnection,除非有例外。您可能应该使用using()
https://stackoverflow.com/questions/58563665
复制相似问题