现在有个问题,我这的一个变量。如果有值将值写到数据库中去如果无值就为NULL?怎么写啊?
insert into a(name,sj) values ('"+name+"','"+sj+"')sj为时间类型变量.

解决方案 »

  1.   

    如果有个文本框的值需要转化为时间变量,把这个变量写到数据库去,如果文本框为空,则写一个NULL值进去,怎么写?》问个问题。
    DataTime sj;
    if(czsj.Text!="")
    {
       sj=Convert.ToDataTime(czsj.Text);
    }最后需要用insert into a(name,sj) values ('"+name+"','"+sj+"')写入数据库
      

  2.   

    教你最笨的办法:
    DataTime sj;
    if(czsj.Text!="")
    {
       sj=Convert.ToDataTime(czsj.Text);
       sql = insert into a(name,sj) values ('"+name+"','"+sj+"');
    }
    else
    {
       sql = insert into a(name) values ('"+name+"');
    }
      

  3.   

    Null值在。Net中用DBNull.Value表示
      

  4.   

    DBNull.Value
    怎么用啊。 ?
      

  5.   

    使用Sql参数代替字符串连接.用DBNull.Value对参数赋值.
      

  6.   

    可以使用DBNull的方式使用参数化传递查询。也可以根据条件直接在查询里面写入NULL,这个NULL只要不用''扩起来就可以了!
      

  7.   

    comm.Parameters.add("@kz",SqlDbType.VarChar,25).Value=DbNull.Value
      

  8.   

    SQL语句改为如下:
    insert into a(name,sj) values ('"+name+"',"+sj+")
    然后sj变量的取值改为如下:
    sj = this.TextBox1.Text == ""?"null":"'" + this.TextBox1.Text + "'";
    如此即可实现当空时写入null,不空时写入值.
      

  9.   

    可以写个SP,在SP中处理更方便而且执行效率又高,
    Create sp_test(@name varchar(100),@sj varchar(50))
    as
     declare @tempsj as datetime
     if ltrim(rtrim(@sj))=‘’
        set @tempsj=null
     else
        set @tempsj=convert(datatime,ltrim(rtrim(@sj))) insert into a(name,sj) values ((@name ,@tempsj)
    return