Как я могу передать значение 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, поэтому нам нужно разобраться с этим.
Чао