public WhereClauseBuilder ForParameter <T>(T value, string columnName, SqlDbType sqlType) { if (value == null) { return(this); } HandleFirstParameter(); string paramName = $"@{columnName}"; if (value is string) { _builder.AppendLine($"[{columnName}] like {paramName}"); _command.AddSqlParameter(paramName, value, sqlType); return(this); } if (value is DateTime) { // Only take the date part into account. _builder.AppendLine($"DATEDIFF(day, [{columnName}], {paramName}) = 0"); _command.AddSqlParameter(paramName, value, sqlType); return(this); } _builder.AppendLine($"[{columnName}] = {paramName}"); _command.AddSqlParameter(paramName, value, sqlType); return(this); }
public WhereInClauseBuilder ForParameters <T>(IEnumerable <T> values, SqlDbType sqlType) { if (values == null || !values.Any()) { throw new ArgumentNullException(nameof(values)); } var valuesArray = values.ToArray(); for (int i = 0; i < valuesArray.Length; i++) { if (!_isFirstParameter) { _builder.Append(", "); } string paramName = $"@Value{i}"; _builder.Append(paramName); _command.AddSqlParameter(paramName, valuesArray[i], sqlType); _isFirstParameter = false; } _builder.AppendLine(")"); return(this); }
public WhereClauseBuilder ForParameter <T>(T value, string columnName, SqlDbType sqlType) { if (value == null) { return(this); } if (!_isFirstParameter) { _builder.AppendLine(_logicalOperator.ToString()); } if (_isFirstParameter) { _builder.AppendLine("WHERE"); _isFirstParameter = false; } string paramName = $"@{columnName}"; _builder.AppendLine($"[{columnName}] = {paramName}"); _command.AddSqlParameter(paramName, value, sqlType); return(this); }