问题
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.
回答1:
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
回答2:
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
来源:https://stackoverflow.com/questions/649426/how-can-i-pass-a-null-value-for-date-in-vb-net-to-sql-stored-procedure