各位大哥,我想往sql server中写日期型数据,想用传参数的方法写。我现在用这种方法可以将日期存入数据库没有问题,但是如果我想存一个空值时就会有问题,问题提示说
String was not recognized as a valid DateTime.请问大家我应该怎么做才能既支持存入日期型数据,又支持存入空值????private void addButton_Click(.....)
{
    ........
    myCommand = myConnection.CreateCommand();
    string command = "insert into Ark1(PurchaseDate) values (@PurchaseDate)";
    myCommand.Parameters.Add("@PurchaseDate", SqlDbType.DateTime);
    //其中bDateBox是一个文字框,它存的是一个日期,是从日历选择得到的。
    //如果想存入空值,下面这句话就要出错说‘这个字符串不能被认为是一个有效的日期格式’
    myCommand.Parameters[PurchaseDate].Value = Convert.ToDateTime(bDateBox.Text);
    myCommand.CommandText = command;
    myCommand.ExecuteNonQuery();
    .......}

解决方案 »

  1.   

    判断bDateBox.Text是否为空再处理
      

  2.   

    写成1990-01-01
    或者在程序中判断如果字符串是空,就不用转换成日期型了.但保障你的数据库字段的日期型可以为空.
    insert into Table1 (id,dat) values (3,'')它是可以通过的.
      

  3.   

    除了作判断没有别的办法了吗?实际上我有16个输入变量,其中3个是日期型变量,所以判断3次8种情况,每一种情况是不是insert函数和参数都要重新写呢?这样做太麻烦了。而且我必须支持输入日期为空值得情况呀。怎么办,没有简单一点的方法了吗?
      

  4.   

    谢谢大家,我做了判断,如果为空字符串,存成的值确实是1900-01-01。可是我日期不能写成1900-01-01呀,这样存客户不能满意亚!看来我只能判断如果是空字符串的话,就不insert这个数据了,这样做太麻烦了
      

  5.   

    OK,确实像veryhappy说得那样:存入空值用DBNull.Value