public static bool IsLegitimateDic(object o, DataSet dicDS, out string logContent) { bool isError = false; logContent = string.Empty; PropertyInfo[] properties = o.GetType().GetProperties(); string filter = string.Empty; string propName = string.Empty; try { foreach (PropertyInfo item in properties) { propName = item.Name; if (item.GetValue(o, null) != null) { string value = item.GetValue(o, null).ToString(); if (string.IsNullOrEmpty(value)) continue; if (dicEnum == null) isLegitimate(); if (dicEnum.ContainsKey(propName)) { string tableName = dicEnum[propName]; filter = string.Empty; switch (tableName) { case "RME_CarSeries": filter = "Key = " + value + " and ParentsCode = " + o.GetType().GetProperty("IntendedBrand").GetValue(o, null); break; //case "RME_CarSeries2": // dicDS.Tables[tableName].DefaultView.RowFilter = "Key = " + value + " and ParentsCode = " + o.GetType().GetProperty("IntendedBrand").GetValue(o, null); // break; case "RME_City": filter = "Key = " + value + " and ParentsCode = " + o.GetType().GetProperty("Province").GetValue(o, null); break; case "RME_CarModel": filter = "ModelValue = " + value + " and ClassValue = " + o.GetType().GetProperty("IntendedClass").GetValue(o, null); break; case "RME_Campaign": value = value.Replace(',', ','); string[] ids = value.Split(','); filter = "Key = " + ids[0]; for (int i = 1; i < ids.Count(); i++) { filter += " or Key = " + ids[i]; } break; default: filter = "Key = " + value; break; } dicDS.Tables[tableName].DefaultView.RowFilter = filter; if (dicDS.Tables[tableName].DefaultView.Count == 0) { isError = true; logContent += "[" + propName + "=" + value.ToString() + "(" + filter + ")]"; } //清空过滤条件 dicDS.Tables[tableName].DefaultView.RowFilter = ""; } } } } catch (Exception ex) { isError = true; logContent += "[(filter=" + filter + ")(propName=" + propName + ")]"; } return isError; }