8

My application is asp.net with vb.

In my page I have a textbox for passing date. If I didn't enter date and on clicking submit, I have to pass null value to the stored procedure.

I tried following codes such as DBNull.Value and DateTime.MinValue. In that case instead of null, "#12:00:00#" is passing. I have to pass Null.

Mel
  • 5,837
  • 10
  • 37
  • 42
Nandini
  • 393
  • 4
  • 15
  • 37

2 Answers2

21

Just assign the parameter the value DBNull.Value

[EDIT]

If you are using SqlParameter (thanks Jon) then you can set it like this if it gives any error

parameter.Value = DBNull.Value 
Binoj Antony
  • 15,886
  • 25
  • 88
  • 96
0
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)

Since you set up the parameter nullable, the error will disappear. Now the issue is that .NET pass null integer as 0 so we need to deal with that.

Chao

Peternac26
  • 51
  • 5
  • 1
    Shouldn't this line be `pflt_dateto.SqlValue = DBNull.Value` ? I got the error: "DBNull is a type and cannot be used as an expression" without `.Value` – AllisonC May 02 '17 at 12:35