예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }