string sqlStr = "UPDATE bookstore SET DAY = @DAY WHERE (ID = @ID)"
......
SqlCommand cmd = new SqlCommand(sqlStr, conn);
if(aDate == null)
{
  cmd.Parameters.Add(new SqlParameter("@DAY", SqlDbType.DateTime)).Value = "0000-00-00";
}
else
{
  cmd.Parameters.Add(new SqlParameter("@DAY", SqlDbType.DateTime)).Value = aDate;
}

解决方案 »

  1.   

    string sqlStr = "UPDATE bookstore SET DAY = @DAY WHERE (ID = @ID)"
    ......
    SqlCommand cmd = new SqlCommand(sqlStr, conn);
    if(aDate == null)
    {
      cmd.Parameters.Add(new SqlParameter("@DAY", SqlDbType.DateTime)).Value = "0000-00-00";
    }
    else
    {
      cmd.Parameters.Add(new SqlParameter("@DAY", SqlDbType.DateTime)).Value = aDate;
    }
      

  2.   

    @DAY DateTime=nullUPDATE bookstore SET DAY = @DAY WHERE (ID = @ID)参数DAY的默认值设为null
      

  3.   

    0000-00-00不是合法的日期型,SQL_SEVER不接受。
    数据库现在已经不能做任何的改变
      

  4.   

    如果day为字符型,在此可以让@day=null是可以使数据库相应字段为空。但是对日期型和整型=null都不可以。但是我觉得应该有相应的办法
      

  5.   

    if tb.text=""
                date1 = "null"
    Else
                date1 = "'" & tb.Text & "'"
    End If
    SQL里:
    "& data1 &"
      

  6.   

    说了@day=null不可以。判断一下置null当然谁都会了,关键是不行。
      

  7.   

    用System.DBNULL.Value代替null
    就可以了!