打印本文 打印本文 关闭窗口 关闭窗口
浅谈在ASP.NET中数据有效性校验的方法
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2295  更新时间:2009/4/23 10:50:13  文章录入:mintao  责任编辑:mintao
数值 类型字段格式 方法
  //这也是个判断数值的办法
  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;
}

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口