[英]How to check Eamil is available or not?
我尝试检查此电子邮件是否已注册。 我想检查当用户在注册期间在电子邮件文本框中输入电子邮件时,如果电子邮件已经被其他用户注册,则会显示消息。
Aspx代码
protected void txtEmail_TextChanged(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select count(Email) as Email from tblUsers where Email='"+txtEmail+"'",con);
SqlDataReader dr;
dr = cmd.ExecuteReader();
while (dr.Read())
{
string iEmail = dr["Email"].ToString();
if (iEmail == "0")
{
Label1.Visible = true;
Label1.Text = "This email already registered..";
}
}
}
有一些事情可以提高此查询的性能,
第一:计数查询仅返回“ CELL”而不是一行。 因此,您可以对此查询使用cmd.ExecuteScalar()
,但应将其转换为整数,例如int mailCount = (int)cmd.ExecuteScalar();
那么您可以将mailCount与0进行比较,如果相等,则表明该邮件尚未注册。
第二:代替
SqlCommand cmd = new SqlCommand("select count(Email) as Email from tblUsers where Email='"+txtEmail+"'",con); SqlDataReader dr;
这个,你应该用
SqlCommand cmd = new SqlCommand("select count(Email) as Email from tblUsers WHERE Email = @Email", con);
cmd.Parameters.AddWithValue("@Email",txtEmail.Text.Trim());
而且我认为您的问题是“ txtEmail”,您应该使用txtEmail.Text.Trim()
确保为该文本框启用AutoPostBack="true"
,如下所示:-
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" AutoPostBack="true"></asp:TextBox>
希望这会有所帮助吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.