我的表里边有四个日期类型的字段,  插入的时候不是必填项,如何可以让它灵活的在程序中使用?
SQL 2005  c#2010 web在数据库中建了一个日期型字段 [FDATE]string  vh="";if (textbox1.text==“”) //没有填入日期
     vh=null;
else
      vh=textbox1.text;
string sql="INSERT INTO TABLE(F1,F2,F3,[FDATE]) VALUES('A','A','A3',vh)";......//当没有填入日期,执行插入SQL 错误,  如何解决这个问题?
//这个只是个例子说明问题, 实际上,我的表里边有四个日期类型的字段,  插入的时候不是必填项。 

解决方案 »

  1.   

    建议你用nvarchar型字段,这样可以不必受限于日期类型
      

  2.   

    string sql="INSERT INTO TABLE(F1,F2,F3,[FDATE]) VALUES('A','A','A3',getdate())"; 
      

  3.   

    C#中   DateTime? 表示
    DateTime? date = DateTime.Now;
    //取值
    if(date.HasValue){Console.Write(date.Value.ToString("yyyy-MM-dd"));}
    //赋值null
    date = null;
      

  4.   

    if (textbox1.text==“”) //没有填入日期
         vh=DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
      

  5.   

    试试吧sql插入语句分开写,当textbox.text==null时候和不为null的时候都写一个sql语句吧
      

  6.   


    当这个值没填时, 我认为它是空, 而不能去取当前的时间或任何时间, 字段记录内容只能是 NULL 
      

  7.   

    在SQL server中设计表的时候,将日期那个字段,设置可为空。就OK了,
      

  8.   

    最简单的方法:SQL server中设计表的时候,将日期那个字段,设置可为空。就OK了,这样你不填的时候,默认是空,是保证你可以插入进去的。
      

  9.   

    DateTime dt1 = "2012-10-10"
    DateTime? dt2 = null dt2 的类型就可以了
      

  10.   

    string sql="INSERT INTO TABLE(F1,F2,F3,[FDATE]) VALUES('A','A','A3',vh)";......//当没有填入日期,执行插入SQL 错误,  如何解决这个问题?==》
    你在拼接sql语句判断下嘛,
    如果没有输入日期或选择日期,在拼接的时刻设为 null 就是了,
    比如 f1 为空,在拼接的时候判下,再组织嘛
     string sql="INSERT INTO TABLE(F1,F2,F3,[FDATE]) VALUES(null,'A','A3',vh)";
      

  11.   

    还是没有比较好的解决办法;多个日期型字段,  不可以设置为100年前,   只能是不填或者赋值为NULL用的SQL 语句, 最好一句,不要分开说假如A1日期不在,不要插入它, A2日期空就不要插入A2, 当A1,A2,都为空的时候都不要插入。
    再想想。  
      

  12.   


    string time = null;
                string sql = "insert into B_qyb(qymc,qyfzr,bz,lxdh,Fdate) values('bbb','ccc','ddd','eee','"+time+"')";
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlCommand cmd= new SqlCommand(sql, conn);
                    if (cmd.ExecuteNonQuery() > 0)
                        Console.WriteLine("执行成功!");
                    else
                        Console.WriteLine("执行失败!");
                }