public static string CheckField(object obj) { string errorMsg = ""; PropertyInfo[] propertyInfos = obj.GetType().GetProperties(); // 获取一个类的所有属性 foreach (PropertyInfo propertyInfo in propertyInfos) { // 因为对于此示例,每个Properties(属性)只有一个Attribute(标签),所以用了first()来获取, // 不过有一点,就是必须在属性里面添加[CheckAttribute]标签,但是可以不设置表情里面的字段.因为没有的.GetCustomAttributes()返回为null.指向first会报错. var attrs = propertyInfo.GetCustomAttributes(typeof(CheckAttribute), false); if (attrs == null || attrs.Count() == 0) { continue; } CheckAttribute attribute = attrs.First() as CheckAttribute; if (attribute == null) { continue; } if (attribute.CheckEmpty) { if (propertyInfo.PropertyType.FullName.Equals(typeof(System.String).FullName)) { string val = propertyInfo.GetValue(obj) as string; if (string.IsNullOrEmpty(val)) { errorMsg = string.Format("{0} 不能为空", string.IsNullOrEmpty(attribute.FieldName) ? propertyInfo.Name : attribute.FieldName); break; } } else { if (CommFunc.ConvertDBNullToDecimal(propertyInfo.GetValue(obj)) == 0) { errorMsg = string.Format("{0} 不能为空", string.IsNullOrEmpty(attribute.FieldName) ? propertyInfo.Name : attribute.FieldName); break; } } } if (attribute.CheckMaxLength) { string val = propertyInfo.GetValue(obj) as string; if (val != null && val.Length > attribute.MaxLength) { errorMsg = string.Format("{0} 最大长度为{1}", string.IsNullOrEmpty(attribute.FieldName) ? propertyInfo.Name : attribute.FieldName, attribute.MaxLength); break; } } if (attribute.CheckRegex) { string val = propertyInfo.GetValue(obj) as string; Regex regex = new Regex(attribute.RegexStr); if (val != null && !regex.IsMatch(val)) { errorMsg = string.Format("{0} 格式不对", string.IsNullOrEmpty(attribute.FieldName) ? propertyInfo.Name : attribute.FieldName); break; } } } return(errorMsg); }
/// <summary> /// 转换为人民币大写 /// </summary> /// <param name="decMoney"></param> /// <returns></returns> public static string convertMoneytoRMB(decimal decMoney) { string qz = ""; if (decMoney < 0) { qz = "负"; decMoney = Math.Abs(decMoney); } decMoney = CommFunc.ConvertDBNullToDecimal(decMoney.ToString("f2")); string strMoney, strOneNum, strTemp, strConverted; int i, iLen; //设初值 strConverted = ""; strMoney = decMoney.ToString(); iLen = strMoney.Length; //先取小数位 if (strMoney.IndexOf(".") > 0) { strTemp = strMoney.Substring(strMoney.IndexOf(".") + 1, strMoney.Length - strMoney.IndexOf(".") - 1); if (strTemp.Length > 2) { //Console.WriteLine("错误:无法计算超过2位的小数"); return(strConverted); } else if (strTemp == "0" || strTemp == "00" || strTemp == "") { strTemp = ""; } else { if (strTemp.Length == 1 && strTemp != "0") { strConverted = converNumtoCapital(strTemp) + "角" + strConverted; } else { strOneNum = strTemp.Substring(0, 1); strConverted = converNumtoCapital(strOneNum) + (strOneNum != "0" ? "角" : "") + strConverted; strOneNum = strTemp.Substring(1, 1); strConverted = strConverted + (strOneNum != "0" ? converNumtoCapital(strOneNum) + "分" : ""); } } } //取整数部分 if (strMoney.IndexOf(".") < 0) { strTemp = strMoney; } else { strTemp = strMoney.Substring(0, strMoney.IndexOf(".")); } iLen = strTemp.Length; if (iLen > 0 && decimal.Parse(strTemp) != 0) { strConverted = "元" + strConverted; for (i = 0; i < iLen; ++i) { strOneNum = strTemp.Substring(iLen - 1 - i, 1); //if (strOneNum == "0") //{ // //Console.WriteLine(strConverted.Substring(0, 1)); // if ((strConverted.Substring(0, 1) == "零" || strConverted.Substring(0, 1) == "元" || strConverted.Substring(0, 1) == "万" || strConverted.Substring(0, 1) == "亿") && !((i + 1) % 12 == 0 || (i + 1) == 5 || (i + 1) % 9 == 0)) // continue; // else // strConverted = converNumtoCapital(strOneNum) + strConverted; //} //Console.WriteLine((i + 1) % 4); if ((i + 1) == 1) { strConverted = (strOneNum == "0" ? "" : converNumtoCapital(strOneNum)) + strConverted; } else if (((i + 1) % 4 == 2 || (i + 1) == 2) && i % 4 != 0 && i % 8 != 0) { if (strOneNum == "0") { if (strConverted.Substring(0, 1) == "零" || strConverted.Substring(0, 1) == "元" || strConverted.Substring(0, 1) == "万" || strConverted.Substring(0, 1) == "亿") { continue; } else { strConverted = "零" + strConverted; } } else { strConverted = converNumtoCapital(strOneNum) + "拾" + strConverted; } } else if (((i + 1) % 4 == 3 || (i + 1) == 3) && i % 4 != 0) { if (strOneNum == "0") { if (strConverted.Substring(0, 1) == "零" || strConverted.Substring(0, 1) == "元" || strConverted.Substring(0, 1) == "万" || strConverted.Substring(0, 1) == "亿") { continue; } else { strConverted = "零" + strConverted; } } else { strConverted = converNumtoCapital(strOneNum) + "佰" + strConverted; } } else if ((i + 1) % 4 == 0 && i % 4 != 0) { if (strOneNum == "0") { if (strConverted.Substring(0, 1) == "零" || strConverted.Substring(0, 1) == "元" || strConverted.Substring(0, 1) == "万" || strConverted.Substring(0, 1) == "亿") { continue; } else { strConverted = "零" + strConverted; } } else { strConverted = converNumtoCapital(strOneNum) + "千" + strConverted; } } else if (i % 4 == 0 && i % 8 != 0) { //Console.WriteLine("万位{0}", i); strConverted = (strOneNum == "0" ? "" : converNumtoCapital(strOneNum)) + "万" + strConverted; } else if (i % 8 == 0) { //Console.WriteLine("亿位{0}", i); if (strConverted.Substring(0, 1) == "万") { strConverted = strConverted.Substring(1, strConverted.Length - 1); } strConverted = (strOneNum == "0" ? "" : converNumtoCapital(strOneNum)) + "亿" + strConverted; } else { //Console.WriteLine(i); strConverted = converNumtoCapital(strOneNum) + strConverted; } } } return(qz + strConverted); }