|
|
| 浅谈在ASP.NET中数据有效性校验的方法(2) |
| 作者:不详 来源:不详 发布时间:2006-8-14 9:06:20 发布人:chinazhan |
减小字体
增大字体
#region 校验 邮编 类型字段格式 方法 public string GetZipFieldError(string ErrorField) { return ErrorField + "格式不正确(157032)!" ; } public bool IsValidZip(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_ZIP)).IsMatch(Row[fieldName].ToString()); if ( (!isValid) && (i > 0)) { Row.SetColumnError(fieldName, GetZipFieldError(ErrorField)); return false; } } return true; } #endregion #region 校验 身份证 类型字段格式 方法 public string GetSSNFieldError(string ErrorField) { return ErrorField + "格式不正确(长度为15或18位)!" ; } public bool IsValidSSN(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_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; } 做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。
|
| |
|
[]
[返回上一页]
[打 印]
[收 藏] |
|
| ∷相关文章评论∷ (评论内容只代表网友观点,与本站立场无关!) [更多评论...] |
|
|