日期:2014-05-20  浏览次数:20375 次

积累细节小贴士:asp.net中对数据库表插入null空值的问题
大家看下,编程时候应当注意的小细节,不容忽视呀!如下:看看自己有没有遇到过这个问题


对表进行插入操作,如datetime和int类型的两个字段,都允许为null,  

  用“sqlcmd.Parameters.Add( "@t12 ",tb12.Text)”参数绑定时。datetime类型时,tb12.Text为空,插入成功,不报错,查看该值,却为1900-01-01;int类型时,用同样语句,tb12.Text为空,插入成功,不报错,查看该值,却为0;用“sqlcmd.Parameters.Add(new   SqlParameter( "@t12 ",SqlDbType.DateTime));sqlcmd.Parameters[ "@t12 "].Value=tb12.Text;”语句时,tb12.Text为空插入则报错。


    nbsp;   sqlcmd.Parameters.Add(new   SqlParameter( "@t12 ",SqlDbType.DateTime));  
    if   (tb12.Text.Length> 0)  
    {  
    sqlcmd.Parameters[ "@t12 "].Value=tb12.Text  
    }  
    else  
    {  
    sqlcmd.Parameters[ "@t12 "].Value   =   System.DBNull.Value;  
    }  


    http://develop.csai.cn/web/200612190927391172.htm

------解决方案--------------------
呵呵,支持楼主
------解决方案--------------------
UP楼主。
------解决方案--------------------
这样岂不是很郁闷
有别的办法么?
------解决方案--------------------
@_@
------解决方案--------------------
测试:insert into test values( ' ', ' ')
得到的结果是:
1900-01-01 00:00:00.000 0