使用验证器在Asp.net功能中是否已存在任何电子邮件?

时间:2011-06-14 07:22:23

标签: c# .net asp.net ajax

我的要求是,如果用户在asp.net文本框中输入电子邮件,它应该从数据库验证,这个电子邮件是否存在,并且应该停止提交表单,是否有任何内置功能或者我必须自己做?

由于 与Atif

3 个答案:

答案 0 :(得分:4)

你必须自己做。您可以按如下方式使用AJAX:

 <asp:TextBox ID="txtEmail" runat="server" MaxLength="50"
        AutoPostBack="true" OnTextChanged="txtEmail_Changed"></asp:TextBox>
    <asp:RequiredFieldValidator ID="rfv" runat="Server" 
        ErrorMessage="*" ControlToValidate="txtEmail" Display="Dynamic" SetFocusOnError="True"></asp:RequiredFieldValidator>
    <asp:RegularExpressionValidator ID="RegularExpressionValidator6" runat="server" ControlToValidate="txtEmail"
        CssClass="ValidationError" Display="Dynamic" ErrorMessage="Invalid Email"
        ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" SetFocusOnError="True"></asp:RegularExpressionValidator>

 <asp:UpdatePanel ID="upMessage" runat="Server" UpdateMode="Conditional">
      <Triggers>
         <asp:AsyncPostBackTrigger ControlID="txtEmail" EventName="TextChanged" />
       </Triggers>
   <ContentTemplate>
       <asp:Label ID="lbl" runat="server" Text=""></asp:Label>
    </ContentTemplate>
 </asp:UpdatePanel>

protected void txtEmail_Changed(object sender, EventArgs e)
    {
    // Write your code to check from DB
    }

答案 1 :(得分:0)

我通常这样做:

SqlConnection myConnection1 = new SqlConnection("Data Source=server;Initial Catalog=stuff Integrated Security=True"
SqlCommand myCommand1 = new SqlCommand("SELECT [email] FROM [dbo].[dbo].[dbo];", myConnection1);
SqlDataReader reader = myCommand1.ExecuteReader();

if (reader.HasRows)
{

}

答案 2 :(得分:0)

据我所知,没有这样的东西(此外,在数据库中是否应该检查电子邮件唯一性?Active Directory域?)

您必须定义自己的验证器控件,继承自BaseValidator类。