处理DateTime和Null值

时间:2012-08-15 14:34:18

标签: vb.net ado.net

  1. 我有一个名为DateTime类型的modifieddate变量,可以设置为null。
  2. 我使用datareader填充变量,如果阅读器为空则将值设置为空
  3. 当我进一步使用变量时,商店程序抱怨我没有提供价值。 “过程或函数'tHistory_Insert'需要参数'@modifieddate',这是未提供的”
  4. 问题:当日期为空时,有关如何将空值传递到存储过程的任何想法吗?

    第1步

    Public modifieddate As Nullable(Of DateTime)
    

    第2步

    If IsDBNull(dr("modifieddate")) = False Then
    
         modifieddate = DateTime.Parse(dr("modifieddate"))
    Else
    
         modifieddate = Nothing
    End If
    

    第3步

    command.Parameters.Add("@modifieddate", SqlDbType.DateTime).Value = modifieddate
    command.ExecuteNonQuery()
    

1 个答案:

答案 0 :(得分:5)

如果没什么,我想你必须传递DBNull.Value。像这样:

If modifieddate Is Nothing then
  command.Parameters.Add(...).Value = DBNull.Value
Else
  command.Parameters.Add(...).Value = modifieddate
End If