如何查看电子邮件是否可用?

时间:2015-03-19 10:59:11

标签: c# asp.net

我尝试检查此电子邮件是否已注册。我想检查当用户在注册期间在电子邮件文本框中输入电子邮件时,如果电子邮件已经被其他用户注册,则会显示消息。
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..";
           }

       }


    }

2 个答案:

答案 0 :(得分:1)

此查询的增益效果可以做些什么,

第一:计数查询仅返回A“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()

答案 1 :(得分:0)

请确保为该文本框启用AutoPostBack="true",如下所示: -

<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" AutoPostBack="true"></asp:TextBox>

希望这会有帮助吗?