繁体   English   中英

如何检查Eamil是否可用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM