作者mindscold (喵)
看板Visual_Basic
标题[.NET] 如何插入null值至日期栏位
时间Fri Apr 29 17:02:39 2011
请输入专案类型(网站专案或者应用程式专案):
visual basic 2010
请问我有以下code是用来插入资料至table内
Dim cmd As Odbc.OdbcCommand
cmd = New Odbc.OdbcCommand("insert into PICsM (CC,EDate,PICDate) values ('" &
Usr & "','" & Me.EDate.text & "','" & Me.PICDate.Text & "')", Cnn)
cmd.ExecuteNonQuery()
其中问题是在於 Edate 跟 PICDate 这2个文字格
使用者是可以自由决定要不要填的
当使用者不填时,资料库里的日期栏位要是NULL值才行
可是上述Code并不能插入null值、会变成是 1900/1/1
不打算用if...else...去判断是否为空白来变更cmd的内容
因为这种可填可不填的日期栏还满多的
通通用if判断的话会变成落落长一串 Orz
插入後再用 "update picsm set Edate = null where Edate = '1900/11'"去更新
感觉又不是那麽简单俐落
请问该怎麽让它插入null值呢?谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.17.41
1F:→ pinkykk:SqlDateTime.null ? 04/29 17:49
2F:→ MOONRAKER:... & ', null ,' & ... 这样不就得了 04/29 18:05
3F:→ MOONRAKER:还有.NET有String.Format() 快别再用这种&到死的写法吧 04/29 18:06
4F:→ pinkykk:受教了 谢谢楼上 04/29 18:18
5F:→ MOONRAKER:冏 我只是想说他还是拼字串不是用SqlCommand和Parameter 04/29 18:30
6F:→ MOONRAKER:而拼字串的话在对应栏位塞一个null应该就可以了… 04/29 18:30
7F:→ pinkykk:我是新手@_@,来版上学到东西,就谢谢一下罗^^ 04/29 20:57
8F:推 cawQQ:换个角度来看~用 ' '不也行吗?? 04/30 18:26
9F:→ MOONRAKER:不行吧,' '是字串,应该会转换为1900-1-1 04/30 23:28
10F:→ MOONRAKER:''也是一样的问题,他是空字串,不是null 04/30 23:28
11F:→ MOONRAKER:MS SQL对null的规定,就我碰到的,龟毛到令人发指 04/30 23:29
12F:→ MOONRAKER:所以在这里题外呼吁(1)select的时候多用isnull()函数 04/30 23:29
13F:→ MOONRAKER:(2)设计资料表时尽可能取个default值,或限制不可为null 04/30 23:30
14F:→ MOONRAKER:当然你若早有计画用null代表不存在,就不在此限 04/30 23:30
15F:推 cawQQ:嗯嗯~那插入 & isnull & 可以吗?? 05/01 15:28
16F:→ cawQQ:喔喔~应该是可以XD 05/01 15:29
17F:→ MOONRAKER:... isnull()是select的时候用的 isnull(field, value) 05/01 16:51
18F:→ MOONRAKER:意思是说field如果为null 就自动转成value 05/01 16:51
19F:→ MOONRAKER:插入isnull…你面谈的时候敢这样写就不要给我改到。 05/01 16:52
20F:推 sueadolph:SQL的null 真的要蛮小心的,以前写网页的时候,找了很久 05/02 19:22
21F:→ sueadolph:的错,最後才发现.....原来是null的问题 05/02 19:23