/// <summary> /// 添加查询条件 /// </summary> /// <param name="_FieldName">字段名</param> /// <param name="_DataType">数据类型</param> /// <param name="_StartValue">起始值</param> /// <param name="_EndValue">结束值</param> /// <param name="_StartControlID">起始值对应的控件ID</param> /// <param name="_EndControlID">结束值对应的控件ID</param> public void AddCondition(string _FieldName, DataType _DataType, string _StartValue, string _EndValue, string _StartControlID, string _EndControlID) { AddCondition("", _FieldName, _DataType, _StartValue, _EndValue, _StartControlID, _EndControlID); }
/// <summary> /// 添加查询条件 /// </summary> /// <param name="_FieldName">字段名</param> /// <param name="_DataType">数据类型</param> /// <param name="_StartValue">起始值</param> /// <param name="_EndValue">结束值</param> private void AddCondition(string _FieldName, DataType _DataType, string _StartValue, string _EndValue) { AddCondition("", _FieldName, _DataType, _StartValue, _EndValue, "", ""); }
private string BuildFilterCondition(string TableName, string FieldName, string Value, Operators compare, DataType type) { Value = Value.Replace("'", "''").Trim(); var sqlBuilder = new StringBuilder(); // 允许空值,实现空条件(IS NULL,IS NOT NULL) //if (FieldName != null && FieldName != "" && Value != null && Value != "") if (!string.IsNullOrEmpty(FieldName)) { if (Value == null) { Value = string.Empty; } sqlBuilder.Append(" AND "); if (type == DataType.Date) { sqlBuilder.Append(" CONVERT(CHAR(10), "); } if (TableName.Trim() != "") { sqlBuilder.Append(TableName).Append("."); } sqlBuilder.Append(FieldName); if (type == DataType.Date) { sqlBuilder.Append(" ,21) "); } sqlBuilder.Append(ConvertRangeType(compare)); if (compare == Operators.Like || compare == Operators.NotLike) { sqlBuilder.Append("'%") .Append(Value) .Append("%'"); } else if (compare == Operators.LikeLeft) { sqlBuilder.Append("'") .Append(Value) .Append("%'"); } else if (compare == Operators.In) { Value = Value.Replace("'", ""); string[] a = Value.Split(','); sqlBuilder.Append("("); for (int i = 0; i < a.Length; i++) { sqlBuilder.Append("'" + a[i] + "'"); if (i != a.Length - 1) { sqlBuilder.Append(","); } } sqlBuilder.Append(")"); } else if (compare == Operators.SubQueryIn || compare == Operators.SubQueryNotIn) { sqlBuilder.Append("( "); sqlBuilder.Append(Value.Replace("''", "'")); sqlBuilder.Append(" )"); } else if (compare != Operators.IsNull && compare != Operators.IsNotNull) { if (type == DataType.String) { sqlBuilder.Append("'") .Append(Value) .Append("'"); } else if (type == DataType.Date) { sqlBuilder.Append("'") .Append(Value) .Append("'"); } else { sqlBuilder.Append(Value); } } } return(sqlBuilder.ToString()); }
/// <summary> /// 添加查询条件 /// </summary> /// <param name="_TableName">表名或别名,可为空串(如果字段名唯一,不需要加表名或别名标识)</param> /// <param name="_FieldName">字段名</param> /// <param name="_DataType">数据类型</param> /// <param name="_StartValue">起始值</param> /// <param name="_EndValue">结束值</param> /// <param name="_StartControlID">起始值对应的控件ID</param> /// <param name="_EndControlID">结束值对应的控件ID</param> private void AddCondition(string _TableName, string _FieldName, DataType _DataType, string _StartValue, string _EndValue, string _StartControlID, string _EndControlID) { AddCondition(_TableName, _FieldName, Operators.GreaterThanEqual, _DataType, _StartValue, _StartControlID); AddCondition(_TableName, _FieldName, Operators.LessThanEqual, _DataType, _EndValue, _EndControlID); }
/// <summary> /// 添加查询条件,基础方法 /// </summary> /// <param name="_TableName">表名或别名,可为空串(如果字段名唯一,不需要加表名或别名标识)</param> /// <param name="_FieldName">字段名</param> /// <param name="_Operators">运算符号</param> /// <param name="_DataType">数据类型</param> /// <param name="_Value">比较值</param> /// <param name="_ControlID">对应的控件ID</param> private void AddCondition(string _TableName, string _FieldName, Operators _Operators, DataType _DataType, string _Value, string _ControlID) { ds.SearchConditionTable.AddSearchConditionRow(_TableName, _FieldName, _Operators.ToString(), _Value, _DataType.ToString(), _ControlID); }
/// <summary> /// 添加查询条件 /// </summary> /// <param name="_TableName">表名或别名</param> /// <param name="_FieldName">字段名</param> /// <param name="_Operators">运算符号</param> /// <param name="_DataType">数据类型</param> /// <param name="_Value">比较值</param> private void AddCondition(string _TableName, string _FieldName, Operators _Operators, DataType _DataType, string _Value) { AddCondition(_TableName, _FieldName, _Operators, _DataType, _Value, ""); }