Как я могу передать значение null для date в vb.net к хранимой процедуре sql?

мое приложение asp.net с vb.

на моей странице у меня есть текстовое поле для даты прохождения. Если я не ввел дату и не нажал кнопку Отправить, я должен передать нулевое значение хранимой процедуре.

Я пробовал следующие коды, такие как DBNull.Value и DateTime.MinValue. В этом случае вместо null, "#12:00:00#" проходит. Я должен передать Null.

2 ответов


просто назначьте параметру значение DBNull.Значение

[EDIT]

Если вы используете SqlParameter (спасибо Jon), то вы можете установить его так, если он дает любую ошибку

parameter.Value = DBNull.Value 

Dim pflt_dateto As SqlParameter = cmd.CreateParameter
        pflt_dateto.Direction = ParameterDirection.Input
        pflt_dateto.DbType = SqlDbType.Int
        pflt_dateto.IsNullable = True
        pflt_dateto.ParameterName = "flt_dateto"

        If String.IsNullOrEmpty(dateto) Then
            pflt_dateto.SqlValue = DBNull
        Else
            pflt_dateto.SqlValue = dateto
        End If

        cmd.Parameters.Add(pflt_dateto)

поскольку вы установили параметр nullable, ошибка исчезнет. Теперь проблема в том, что .NET передает null integer как 0, поэтому нам нужно разобраться с этим.

Чао