private IParamBuilder InternalCreateLikeSql(TkDbContext context, IFieldInfo fieldInfo, string paramName, string fieldValue) { fIsEscape = fieldValue.IndexOfAny(WIDE_CHARS) != -1; string fieldName = context.EscapeName(fieldInfo.FieldName); string fieldName1 = paramName + "1"; string fieldName2 = paramName + "2"; if (fIsEscape) { fSql = string.Format(ObjectUtil.SysCulture, "(({0} LIKE {1} ESCAPE '\\') OR ({0} LIKE {2} ESCAPE '\\'))", fieldName, context.GetSqlParamName(fieldName1), context.GetSqlParamName(fieldName2)); fieldValue = StringUtil.EscapeSqlString(fieldValue); } else { fSql = string.Format(ObjectUtil.SysCulture, "(({0} LIKE {1}) OR ({0} LIKE {2}))", fieldName, context.GetSqlParamName(fieldName1), context.GetSqlParamName(fieldName2)); } fParams.Add(fieldName1, fieldInfo.DataType, fieldValue + "%"); fParams.Add(fieldName2, fieldInfo.DataType, "%" + fieldValue + "%"); return(this); }
public static IParamBuilder CreateParamBuilder(string sql, IFieldInfo fieldInfo, object fieldValue) { DbParameterList paramList = new DbParameterList(); paramList.Add(fieldInfo, fieldValue); return(CreateParamBuilder(sql, paramList)); }
public static IParamBuilder CreateParamBuilder(string sql, string fieldName, TkDataType dataType, object fieldValue) { TkDebug.AssertArgumentNullOrEmpty(fieldName, "fieldName", null); DbParameterList paramList = new DbParameterList(); paramList.Add(fieldName, dataType, fieldValue); return(CreateParamBuilder(sql, paramList)); }
public void SqlDelete(IParamBuilder builder) { TkDebug.AssertArgumentNull(builder, "builder", this); if (IsFakeDelete) { var field = GetFieldInfo(FakeDelete.FieldName); string sql = string.Format(ObjectUtil.SysCulture, "UPDATE {0} SET {1} = {2}{3}", TableName, field.FieldName, Context.GetSqlParamName(field.FieldName), string.IsNullOrEmpty(builder.Sql) ? string.Empty : " WHERE " + builder.Sql); DbParameterList paramList = new DbParameterList(); paramList.Add(field, FakeDelete.Value); paramList.Add(builder.Parameters); DbUtil.ExecuteNonQuery(sql, Context, paramList); } else { string sql = "DELETE FROM " + TableName; DbUtil.ExecuteNonQuery(sql, Context, builder); } }
public void Add(IParamBuilder builder) { if (builder == null) { return; } string sql = builder.Sql; TkDebug.AssertNotNullOrEmpty(sql, "传入参数builder生成的Sql为空,这是不允许的", builder); AddSql(sql); DbParameterList parameters = builder.Parameters; TkDebug.AssertNotNull(parameters, "传入参数builder调用GetParameters返回为空,这是不允许的", builder); fParams.Add(parameters); }