/// <summary> /// 获取分页操作的查询条件 /// </summary> /// <returns></returns> protected virtual string GetPagerCondition() { string where = ""; //增加一个CustomedCondition条件,根据客户这个条件进行查询 string CustomedCondition = Request["CustomedCondition"] ?? ""; if (!string.IsNullOrWhiteSpace(CustomedCondition)) { where = CustomedCondition;//直接使用条件 } else { #region 根据数据库字段列,对所有可能的参数进行获值,然后构建查询条件 SearchCondition condition = new SearchCondition(); DataTable dt = baseBLL.GetFieldTypeList(); foreach (DataRow dr in dt.Rows) { string columnName = dr["ColumnName"].ToString(); string dataType = dr["DataType"].ToString(); //字段增加WHC_前缀字符,避免传递如URL这样的Request关键字冲突 string columnValue = Request["WHC_" + columnName] ?? ""; //对于数值型,如果是显示声明相等的,一般是外键引用,需要特殊处理 bool hasEqualValue = columnValue.StartsWith("="); if (IsDateTime(dataType)) { condition.AddDateCondition(columnName, columnValue); } else if (IsNumericType(dataType)) { //如果数据库是数值类型,而传入的值是true或者false,那么代表数据库的参考值为1,0,需要进行转换 bool boolValue = false; bool isBoolenValue = bool.TryParse(columnValue, out boolValue); if (isBoolenValue) { condition.AddCondition(columnName, boolValue ? 1 : 0, SqlOperator.Equal); } else if (hasEqualValue) { columnValue = columnValue.Substring(columnValue.IndexOf("=") + 1); condition.AddCondition(columnName, columnValue, SqlOperator.Equal); } else { condition.AddNumberCondition(columnName, columnValue); } } else { if (ValidateUtil.IsNumeric(columnValue)) { condition.AddCondition(columnName, columnValue, SqlOperator.Equal); } else { condition.AddCondition(columnName, columnValue, SqlOperator.Like); } } } #endregion #region MyRegion //string SystemType_ID = Request["SystemType_ID"] ?? ""; //string LoginName = Request["LoginName"] ?? ""; //string FullName = Request["FullName"] ?? ""; //string Note = Request["Note"] ?? ""; //string IPAddress = Request["IPAddress"] ?? ""; //string MacAddress = Request["MacAddress"] ?? ""; //string LastUpdated = Request["LastUpdated"] ?? ""; //SearchCondition condition = new SearchCondition(); //condition.AddCondition("SystemType_ID", SystemType_ID, SqlOperator.Like); //condition.AddCondition("LoginName", LoginName, SqlOperator.Like); //condition.AddCondition("FullName", FullName, SqlOperator.Like); //condition.AddCondition("Note", Note, SqlOperator.Like); //condition.AddCondition("IPAddress", IPAddress, SqlOperator.Like); //condition.AddCondition("MacAddress", MacAddress, SqlOperator.Like); //condition.AddDateCondition("LastUpdated", LastUpdated); #endregion where = condition.BuildConditionSql().Replace("Where", ""); } return(where); }
/// <summary> /// 获取表的字段名称和数据类型列表。 /// </summary> /// <returns></returns> public virtual DataTable GetFieldTypeList() { return(baseBLL.GetFieldTypeList()); }