各位大侠:
我的注册页面在验证用户名是否已注册时使用了CustomValidator控件。并定义当用户名已注册时返回错误信息“该用户名已注册”。但在实际运行的过程中发现当用户名重复是。会提示错误信息。但用户注册名还是被写进了数据库里。难道是CustomValidator不象regularexpressionvalidator这类的控件一样,会阻止用户向数据库里写入错误信息?
void ServerValidateNickNameCheck(object source, ServerValidateEventArgs args)
{
OleDbConnection conCheck;
OleDbCommand cmdCheck;
OleDbDataReader dtrCheck;
string bokeCheck;
string bokeCheckUserNickName;
bokeCheckUserNickName=userNickName.Text;
conCheck= new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="+Server.MapPath("bookee.mdb"));
bokeCheck="Select UserNickName From UserList Where UserNickName='"+bokeCheckUserNickName+"'";
cmdCheck= new OleDbCommand(bokeCheck,conCheck);
conCheck.Open();
dtrCheck =cmdCheck.ExecuteReader();
while (dtrCheck.Read())
{
if(dtrCheck[0].ToString().Trim()==bokeCheckUserNickName)
{
args.IsValid=false;
}
else
{
args.IsValid=true;
}
}
dtrCheck.Close();
conCheck.Close();
}
这是我的验证代码
<asp:CustomValidator ControlToValidate="userNickName" ErrorMessage="该用户名已注册" ID="userNickNameCheck" OnServerValidate="ServerValidateNickNameCheck" runat="server" Text="*"></asp:CustomValidator>
这是调用它的方法。
运行页面会提示该用户已注册,但数据还是写入了数据库,请问怎么在验证到用户已注册后阻止向数据库填入信息?
用户自定义控件CustomValidator不起实际作用?