0

In my stored procedure I am trying to define this datetime parameter as a nullable variable.

@StartDate datetime = null

When I try and dynamically retrieve the parameters in code.

SqlCommandBuilder.DeriveParameters(sqlCommand);

int parameterId = 1;
foreach (SqlParameter parameter in sqlCommand.Parameters)
{
    parameters.Add(new DynamicParamaters()
    {
        ParameterId = parameterId,
        DisplayName = parameter.ParameterName.Substring(1),
        ParameterName = parameter.ParameterName,
        DataType = GetDataType(parameter.ParameterName, parameter.DbType.ToString(), parameter.SqlDbType.ToString()),
        IsNullable = parameter.IsNullable,
        Value = parameter.Value
    });
}

The parameter value IsNullable gets set to false.

How do I define my datetime variable as nullable variable so that SqlCommandBuilder.DeriveParameters() can recognize it as a nullable parameter?

Hammeric
  • 1
  • 1
  • In T-Sql, *every* Stored Procedure parameter is nullable, you can not declare it otherwise. Your example line makes it *optional*, meaning it is valid to omit a value and then (in this case) NULL will be used. – Peter B Apr 10 '18 at 01:21
  • Also, if you do still want to pass in an explicit null value, you need to use `DBNull` instead of `null` – NPras Apr 10 '18 at 04:12

0 Answers0