/// <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); }
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); }