数据库的一个字段为DateTime型,应该允许其为空。
问题是:
向数据库添加一条新的记录时,日起为空的话,如何向变量赋值?如何向数据库中添加空的时间段呢?
谢谢!

解决方案 »

  1.   

    用null 也不行,提示,存取过程需要参数,没有提供。
      

  2.   

    如果使用的存储过程可以在存储过程当中
    为参数添加默认值只要有了默认值,你的存储过程就不会再提示你需要参数了
    参考
    create   PROCEDURE dividePage
    @PageSize   int=5,              -- 设置默认值页尺寸  
    @PageIndex  int=1,               -- 设置默认值页码  
    AS
    --存储过程体
      

  3.   

    你把默认的时间参数设置为null就行了
      

  4.   

    你可以给他默认约束吧 取当前时间 或者为 null
      

  5.   

    谢谢各位,
    我用的是存取过程,请问怎样把 null复制datetime变量?DateTimedate = nuul; 或者
    DateTimedate = (DateTime)nuul;都不行啊。如果赋当前时间给变量,没有问题。
    现在不想赋任何时间,不知道有什么好的解决方案?
      

  6.   

    既然是存储过程就肯定是参数呗,我叫你把参数设置上默认值你是怎么做的?create   PROCEDURE dividePage
    @DateTimedate datetime =null            -- 设置默认值AS
    --存储过程体
      

  7.   

    插入的时候判断iif(date="",Null,date)
      

  8.   

    使用DBNull.Value
    DateTime是一种结构,不能赋Null的
      

  9.   

                    DateTime inDate = (DateTime)DBNull.Value;
    这样还是不能转换:
    错误 无法将类型“System.DBNull”转换为“System.DateTime”
      

  10.   

    你强制去转换当然不可以:
    你要求DateTime为空,就不要去初始化DateTime,这个结构默认是1900年(好像是。。),这样试试:string expression = "insert into TableName values(@datetime....";//后面的省略,采用参数
    SqlCommand cmd = new SqlCommand(expression, new SqlConnection("connectionstring"));
    cmd.Parameters.Add("@datetime", SqlDbType.DateTime).Value = DBNull.Value;//把参数设置为DBNull.value
      

  11.   

    谢谢 linq_chen
    你的做法成功了。
      

  12.   

    .net2.0
    Nullable类型DateTime? dateTime;可能为空