第30章、数据验证

 

【知识要点】
  (1)数据验证

【问题提出】
  学会了读取表中的内容,但表中的内容又是从哪来的?噢,对!是录进来的的,让我们一起看一下如果为客户表(Client)中添加一条记录。

  

【在线指导】

  顾名思义,验证控件就是校验用户输入数据正确性的控件,如用户在文本框中输入数据后,便显示一条提示信息,表明了校验的数据是不合法的。验证过程既可以在服务器上执行,也可以在客户机上执行,在客户端运行的校验代码是数据提交之前被执行的,因此可以提高程序的性能。ASP.NET的验证控件可以进行多种校验,如数据范围检查、数据间的比较和自定义校验等等。

  ASP.NET共有六种验证控件,分别如下:  

  RequiredFieldValidator(必须字段验证)  用于检查是否有输入值
  CompareValidator(比较验证)  按设定比较两个输入
  RangeValidator(范围验证)  输入是否在指定范围
  RegularExpressionValidator(正则表达式验证)  正则表达式验证控件
  CustomValidator(自定义验证)  自定义验证控件
  ValidationSummary(验证总结)  总结验证结果

  验证控件的详细使用方法,详见>>

① RequiredFieldValidator控件

  当页面上的控件要求必须输入数据时,RequiredFieldValidator就起作用了,ControlToValidate属性选择需要验证的控件,而ErrorMessage属性则是校验不合法后显示的错误提示信息。

②CompareValidator控件

  CompareValidator控件是用来比较两个输入控件之间的数据一致性的,同时也可以用来校验控件中内容的数据类型:如整形、字符串型等。ControlToCompare和ControlToValidate属性用来设置进行比较的两个控件。

③RangeValidator控件

  RangeValidator控件可以用来判断用户输入的值是否在某一特定范围内,属性MaximumValue和MinimumValue用来设定范围的最大和最小值。

④RegularExpressionValidator控件

  RegularExpressionValidator控件可以判断用户输入的表达式是否正确,如电话号码、邮编、URL等,ControlToValidate属性选择需要验证的控件,ValidationExpression属性则编写需要验证的表达式的样式,下面的例子就是一段校验邮编的代码。

⑤CustomValidator控件

  CustomValidator控件用于执行用户自定义的验证,这种校验既可以是服务器端的也可以是客户端的,下面的代码就是使用客户端验证邮编的例子。

⑥ValidationSummary控件

  这个控件会将页面中所有的校验错误输出为一个列表,列表的显示方式由DisplayMode属性设置。


1、设计界面

  (1)打开Hello项目,单击“启动页>最近使用的项目>Hello”。

  (2)在“解决方案资源管理器”中添加“SqlAddRecordValidate.aspx”页面。

  (3)从工具箱中拖8个文本框、1个按钮Button到SqlAddRecordValidate.aspx页面。     
           

  A、文本框控件的ID属性分别为:tbClientCode、tbClientName、tbPhone、tbEmail、tbContacter、tbMobile、tbAddress、tbPostcode。
  B、控件“保存”按钮:ID属性为“btnSave”; 

  (4)再从“验证”类控件拖出3个RequireFieldValidator控件和2个RegularExpressionValidator控件。

   

  A、3个RequireFieldValidator控件分别用于验证:客户编号、客户名称、联系人,使之不能为空!只需设置ControlToValidate属性分别指定客户编号tbClientCode、tbClientName、tbContacter。Errormessage分别设置“编号不能为空、客户名称不能为空、联系人不能为空”。
  B、2个RegularExpressionValidator控件分别用于验证:客户电话、电子邮件,使电话符合010-xxxxx,电子邮件类似[email protected]。设置ControlToValidate属性分别指定客户编号tbPhone、tbEmail。Errormessage分别设置“电话格式不正确、Email格式不正确”。

  设置:客户电话的ValidationExpression如下:

   

  单击“...”按钮,在“正则表达式编辑器”中选择“Internet电子邮件地址”。

  

  设置:电子邮件的ValidationExpression如下:

   

  单击“...”按钮,在“正则表达式编辑器”中选择“Internet电子邮件地址”。

  

  

  

2、添加代码(代码部分与第29章相同)

  (1)双击页面上的“保存”按钮。

  我们在btnSave_Click()中间输入:

//获取客户信息---------------------------
string ClientCode=tbClientCode.Text;
string ClientName=tbClientName.Text;
string Phone=tbPhone.Text;
string Email=tbEmail.Text;
string Contacter=tbContacter.Text;
string Mobile=tbMobile.Text;
string Address=tbAddress.Text;
string PostCode=tbPostCode.Text;
//---------------------------------------

//连接SQL SERVER
string ConnSqlServer = "Server=www.woshicainiao.net;Database=SuperMarket;User ID=sa;Pwd=sigmasoft";
SqlConnection Conn = new SqlConnection(ConnSqlServer);
//打开
Conn.Open();

//插入记录---------------------------
string ClientSql = "INSERT INTO Client VALUES(@ClientCode,@ClientName,@Phone,@Email,@Contacter,@Mobile,@Address,@PostCode)";
SqlCommand Comm = new SqlCommand(ClientSql, Conn);

Comm.Parameters.Add("@ClientCode", SqlDbType.VarChar, 8);
Comm.Parameters.Add("@ClientName", SqlDbType.VarChar, 50);
Comm.Parameters.Add("@Phone", SqlDbType.VarChar, 30);
Comm.Parameters.Add("@Email", SqlDbType.VarChar, 30);
Comm.Parameters.Add("@Contacter", SqlDbType.VarChar, 30);
Comm.Parameters.Add("@Mobile", SqlDbType.VarChar, 11);
Comm.Parameters.Add("@Address", SqlDbType.VarChar, 50);
Comm.Parameters.Add("@PostCode", SqlDbType.Char, 6);

Comm.Parameters["@ClientCode"].Value = ClientCode;
Comm.Parameters["@ClientName"].Value = ClientName;
Comm.Parameters["@Phone"].Value = Phone;
Comm.Parameters["@Email"].Value = Email;
Comm.Parameters["@Contacter"].Value = Contacter;
Comm.Parameters["@Mobile"].Value = Mobile;
Comm.Parameters["@Address"].Value = Address;
Comm.Parameters["@PostCode"].Value = PostCode;
//---------------------------------------

//执行命令-------------------------------
Comm.ExecuteNonQuery();
//---------------------------------------

//关闭数据库
Conn.Close();

  (5)输入完以下内容,单击“保存”按钮。

  

  验证:使用SQL SERVER查询编辑器执行“SELECT * FROM Client”:

  

  再输入以下内容,有红色提示,防止无效数据入表。

  

   验证:使用SQL SERVER查询编辑器执行“SELECT * FROM Client”,发现没有添加新记录。

   

 

你可能感兴趣的:(第30章、数据验证)