数据库中里面有张表有个Datetime字段,允许为空。
页面上是一个字符串,我想转换字符串到DateTime用DateTime.Parse()。
如果字符串是空用null代替datetime类型保存到数据库中,怎么写比较好。我现在的写法是DateTime.Parse(sDate.ToString()==""? null: sDate.ToString());
但编译出错,请问怎么改?

解决方案 »

  1.   

    可以这样做
    String sDate = "2008-03-26 11:16:36.000";
    DateTime? date = (sDate=="") ? (DateTime?)null : DateTime.Parse(sDate);
      

  2.   

    你不保存Datetime数据库内他自己就为空了啊
      

  3.   

    这样做吧,
    假如该字段为AddDate,SQL语句如下:
    string strDate="2008-03-26 11:16:36.000";
    string sql="insert into details(AddDate)values(";
    if(strDate==null)
    {
    sql+="null)";
    }
    else
    {
    sql+="'"+strDate+"'";
    } 当然还可以用参数化形式:
    string strDate="2008-03-26 11:16:36.000";
    string sql="insert into details(AddDate)values(@AddDate)";
    if(strDate==null)
    {
    paramters["@AddDate"].value=DbNull.Value;
    }
    else
    {
    paramters["@AddDate"].value=DateTime.Parse(strDate);