看板 Visual_Basic 關於我們 聯絡資訊
請輸入專案類型(網站專案或者應用程式專案): 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
pinkykk:SqlDateTime.null ? 04/29 17:49
MOONRAKER:... & ', null ,' & ... 這樣不就得了 04/29 18:05
MOONRAKER:還有.NET有String.Format() 快別再用這種&到死的寫法吧 04/29 18:06
pinkykk:受教了 謝謝樓上 04/29 18:18
MOONRAKER:冏 我只是想說他還是拼字串不是用SqlCommand和Parameter 04/29 18:30
MOONRAKER:而拼字串的話在對應欄位塞一個null應該就可以了… 04/29 18:30
pinkykk:我是新手@_@,來版上學到東西,就謝謝一下囉^^ 04/29 20:57
cawQQ:換個角度來看~用 ' '不也行嗎?? 04/30 18:26
MOONRAKER:不行吧,' '是字串,應該會轉換為1900-1-1 04/30 23:28
MOONRAKER:''也是一樣的問題,他是空字串,不是null 04/30 23:28
MOONRAKER:MS SQL對null的規定,就我碰到的,龜毛到令人髮指 04/30 23:29
MOONRAKER:所以在這裡題外呼籲(1)select的時候多用isnull()函數 04/30 23:29
MOONRAKER:(2)設計資料表時儘可能取個default值,或限制不可為null 04/30 23:30
MOONRAKER:當然你若早有計畫用null代表不存在,就不在此限 04/30 23:30
cawQQ:嗯嗯~那插入 & isnull & 可以嗎?? 05/01 15:28
cawQQ:喔喔~應該是可以XD 05/01 15:29
MOONRAKER:... isnull()是select的時候用的 isnull(field, value) 05/01 16:51
MOONRAKER:意思是說field如果為null 就自動轉成value 05/01 16:51
MOONRAKER:插入isnull…你面談的時候敢這樣寫就不要給我改到。 05/01 16:52
sueadolph:SQL的null 真的要蠻小心的,以前寫網頁的時候,找了很久 05/02 19:22
sueadolph:的錯,最後才發現.....原來是null的問題 05/02 19:23