/// <summary> /// 设置当前条件的各个属性。 /// </summary> /// <param name="name">当前条件的参数名。</param> /// <param name="flag">当前条件的比较运算符。当使用In运算符时,参数的值请使用<see cref="InTextBuilder"/>类型定义,参数类型请使用String。</param> /// <param name="dbType">当前条件的参数类型。</param> /// <param name="value">当前条件的参数的值。</param> public void Set(string name, SQLText.CompareOperation flag, DbType dbType, object value) { this.Set(name, flag, dbType, value, name); }
/// <summary> /// 设置当前条件的各个属性。 /// </summary> /// <param name="name">当前条件的参数名。</param> /// <param name="flag">当前条件的比较运算符。当使用In运算符时,参数的值请使用<see cref="InTextBuilder"/>类型定义,参数类型请使用String。</param> /// <param name="dbType">当前条件的参数类型。</param> /// <param name="value">当前条件的参数的值。</param> /// <param name="tmpltName">当前条件的参数的模板字符串。不设置就是当前条件的参数名加上"@"前缀。</param> public void Set(string name, SQLText.CompareOperation flag, DbType dbType, object value, string tmpltName) { if (SQLText.RegexParamName.IsMatch(name))//简单防止SQL注入 { return; } if (flag == SQLText.CompareOperation.In)//当使用In子句时,Value必需是SQLTextBuilder.InTextBuilder类型。 { if (!(value is SQLInTextBuilder)) { throw new SQLTextBuilderException(Messages.SQLTextBuilderError_In); } } this.CompareOperationFlag = SQLText.CompareOperationFlags[(int)flag]; this.ParameterName = name; this.DbType = dbType; this.Value = value; this.TemplateSqlTextName = tmpltName; }
/// <summary> /// 通过一个逻辑运算符(<see cref="LogicOperation"/>)给本类型连接一个逻辑条件。 /// </summary> /// <param name="logicOper">一个逻辑运算符。</param> /// <param name="txtBuilder">一个逻辑条件。</param> public void Add(SQLText.LogicOperation logicOper, SQLWhereTextBuilder txtBuilder) { Operaters.Add(SQLText.LogicOperationFlags[(int)logicOper]); Conditions.Add(txtBuilder); }