浅谈在ASP.NET中数据有效性校验的方法下


bool isValid = IsValidField(Row,fieldName, maxLen , ErrorField , AllowNull);

  if ( isValid )

  {

  isValid = (new Regex(REGEXP_IS_VALID_SSN)).IsMatch(Row[fieldName].ToString());

  if ( (!isValid) && (i > 0))

  {

  Row.SetColumnError(fieldName, GetSSNFieldError(ErrorField));

  return false;

  }

  }      

  return true;

  }

  #endregion

  #region 校验 网址 类型字段格式 方法

  public string GetUrlFieldError(string ErrorField)

  {

  return ErrorField + "格式不正确(http://www.abc.com)!" ;

  }

  public bool IsValidUrl(DataRow Row, String fieldName,int maxLen ,string ErrorField,bool AllowNull)

  {

  int i = (short)(Row[fieldName].ToString().Trim().Length);

  bool isValid = IsValidField(Row,fieldName, maxLen , ErrorField , AllowNull);

  if ( isValid )

  {

  isValid = (new Regex(REGEXP_IS_VALID_URL)).IsMatch(Row[fieldName].ToString());

  if ( (!isValid) && (i > 0))

  {

  Row.SetColumnError(fieldName, GetUrlFieldError(ErrorField));

  return false;

  }

  }      

  return true;

  }

  #endregion

  #region 校验 日期 类型字段格式 方法

  public string GetDateFieldError(string ErrorField)

  {

  return ErrorField + "日期格式不正确!" ;

  }

  public bool IsValidDate(DataRow Row, String fieldName,int maxLen ,string ErrorField,bool AllowNull)

{

  int i = (short)(Row[fieldName].ToString().Trim().Length);

  bool isValid = IsValidField(Row,fieldName, maxLen , ErrorField , AllowNull);

  if ( isValid )

  {

  isValid = (new Regex(REGEXP_IS_VALID_DATE)).IsMatch(Row[fieldName].ToString());

  if ( (!isValid) && (i > 0))

  {

  Row.SetColumnError(fieldName, GetDateFieldError(ErrorField));

  return false;

  }

  }      

  return true;

  }

  #endregion 

  #region 校验 数值 类型字段格式 方法

  //这也是个判断数值的办法

  private bool IsNumeric(string Value)

  {

  try

  {

  int i = int.Parse(Value);

  return true;

  }

  catch

  { return false; }

  }

  public string GetFieldNumberError(string ErrorField)

  { 

  return ErrorField + "必须是数字(例如:90)!" ;

  }

  public bool IsValidNumber(DataRow Row, String fieldName,string ErrorField,bool AllowNull)

  {

  int i = (short)(Row[fieldName].ToString().Trim().Length);

  bool isValid = (new Regex(REGEXP_IS_VALID_DEMICAL)).IsMatch(Row[fieldName].ToString());

  if ( i < 1 && (!AllowNull))

  {

  Row.SetColumnError(fieldName, GetFieldNullError(ErrorField));        

  return false;

  }       

  else if ( (!isValid) && (i > 0))

  {

  Row.SetColumnError(fieldName, GetFieldNumberError(ErrorField));

return false;

  }

  return true;

  }

  #endregion

  }

  }

  //在继承了基类的BusinessRule中使用校验的方法

  /// <summary>

  /// 使用上面的方法对数据进行有效性校验

  /// </summary>

  /// <param name="Row">数据行</param>

  /// <returns>通过--true 不通过--false</returns> 

  public bool Validate(DataRow Row)

  {

  bool isValid;      

  Row.ClearErrors();       

  isValid  = IsValidField(Row, "name", 20 ,"姓名",false);   

  isValid &= IsValidZip(Row, "zip", 6,"邮编",true);

  isValid &= IsValidNumber(Row, "age","年龄",false);

  isValid &= IsValidEmail(Row,"email",50,"电子邮件" ,true); 

  return isValid;

  }

  //在WebUI中显示错误提示信息

  /// <summary>

  /// 显示提交数据返回的错误信息

  /// </summary>

  private void DisplayErrors()

  {

  String fieldErrors="";

  String tmpfieldErrors="";

  DataRow Row = ds.Tables[0].Rows[0];

  foreach (DataColumn Column in ds.Tables[0].Columns)

  {  

  tmpfieldErrors = Row.GetColumnError(Column.ColumnName.ToString());

  if (tmpfieldErrors!="")

  {

  fieldErrors += "<li>" + tmpfieldErrors + "<br>";


  }

  }

  //显示错误信息

  this.lblError.Text = fieldErrors;

  }

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3