空值你就别插入那个字段嘛 string myinsert = string.Format(@"insert into person(姓名,手机,性别)values('{0}','{1}','{2}')", sname, sphone, ssex);

解决方案 »

  1.   

    首先数据库中你的这个时间字段是:可空的时间类型
    接着就是程序代码中稍微处理一下即可。
    string time = dateTimePicker1.Value.ToLongDateString();
    DateTime? dt = string.IsNullOrEmpty(time) ? null : (DateTime?)DateTime.Parse(time);
      

  2.   

    string time = dateTimePicker1.Value.ToLongDateString();
    DateTime? dt = string.IsNullOrEmpty(time) ? null : (DateTime?)DateTime.Parse(time);
    string myinsert = string.Format(@"insert into person(姓名,手机,性别,生日)values('{0}','{1}','{2}','{3}')", sname, sphone, ssex,dt);
      

  3.   

    有个不太好的注意:设置个1888年,然后查询的时候,time>1888
      

  4.   

    我只知道SQL如何做   用 DBnull
      

  5.   

    '{3}'改成{3}
    time = "null"
      

  6.   


    我直接把NULL赋值给time,测试一下。程序还是报错:未处理OleDbException——"标准表达式中数据类型不匹配。"
      

  7.   


    这个时间列是允许为空的,但好像null不能直接插进去
      

  8.   


    别插这个字段不就行了?非得插入它一下?时间我还是建议给个默认值比如:1900-01-01别给日期类型的给个NULL为好
      

  9.   

    同样会显示”未处理OleDbException——"标准表达式中数据类型不匹配。"“
    好像NULL不能直接插入时间类型的列中。
      

  10.   


    不插入可以。做这个程序用单个时间控件可以。但如果有几个时间控件(而且是独立,都可以为空),那写SQL语句得多麻烦。所有还是想了解下,呵呵。
      

  11.   

    不是奇怪的问题,人都会有一个生日怎么奇怪呢?你要显示空白datetime类型的话,本来默认就是null,你最好不插入。
      

  12.   


    IF object_id('person') IS  NOT  NULL 
        DROP  TABLE  person
    DECLARE @person TABLE
    (
    tid INT IDENTITY(1,1) PRIMARY KEY,
    tname VARCHAR(30),
    tsex VARCHAR(4),
    tphone VARCHAR(11),
    birthday DATETIME
    )
    INSERT INTO @person
    SELECT  'kaka','男','13018392505','2012-01-21'
    INSERT INTO @person VALUES('Janmes','男','13018392566',NULL)SELECT * FROM @person
    /*
    tid         tname                          tsex tphone      birthday
    ----------- ------------------------------ ---- ----------- -----------------------
    1           kaka                           男    13018392505 2012-01-21 00:00:00.000
    2           Janmes                         男    13018392566 NULL(2 行受影响)
    */插入null肯定是可以的,但是不建议这么做,设置默认值为好
      

  13.   

    如果是字符类型,就可以设置默认值“”,或是NULL;但时间类型的我试了几次都不行,不知道怎么弄。
      

  14.   

    对于大数据 判断过多只会造成不必要的性能损耗
    在尽可能的情况下,我们寻求最完善的方法.
     LZ 问的很平常的一个问题,你SB的回答缺心眼做甚!缺心眼啊?你给你的显示控件复制之前,先判断生日是否是你的默认值,如果是手动赋值“”