我的要求是,如果用户在asp.net文本框中输入电子邮件,它应该从数据库验证,这个电子邮件是否存在,并且应该停止提交表单,是否有任何内置功能或者我必须自己做?
由于 与Atif
答案 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类。