Пример #1
0
        /// <inheritdoc />
        protected override void ProcessRecord()
        {
            SqlStatementParameter rv;

            switch (this.GetParameterSetName())
            {
            case Named:
                rv = new SqlStatementParameter(ParameterName, DbType);
                break;

            case NamedString:
                rv = new SqlStatementParameter(ParameterName, DbType, Size);
                break;

            case NamedDecimal:
                rv = new SqlStatementParameter(ParameterName, DbType, Precision, Scale);
                break;

            default:
                rv = new SqlStatementParameter();
                break;
            }

            rv.Value = Value;

            WriteObject(rv);
        }
Пример #2
0
        private static SqlParameter MapSqlParameter([NotNull] SqlStatementParameter param)
        {
            Error.ArgumentNull(param, nameof(param));

            var parameter = new SqlParameter(param.ParameterName, param.DbType);

            // ReSharper disable once SwitchStatementMissingSomeCases
            switch (param.DbType)
            {
            case SqlDbType.VarBinary:
            case SqlDbType.VarChar:
            case SqlDbType.NVarChar:
            case SqlDbType.Char:
            case SqlDbType.NChar:
            case SqlDbType.Text:
            case SqlDbType.NText:
                if (param.Size.HasValue)
                {
                    parameter.Size = param.Size.Value;
                }
                break;

            case SqlDbType.Decimal:
                if (param.Precision.HasValue)
                {
                    parameter.Precision = param.Precision.Value;
                }
                if (param.Scale.HasValue)
                {
                    parameter.Scale = param.Scale.Value;
                }
                break;
            }

            parameter.Value = param.Value ?? DBNull.Value;

            return(parameter);
        }