我有一個FormView,我從一個表(MS Access)中提取數據,然後將它(加上更多的數據)插入到另一個表中。我遇到了約會的問題。將空值插入日期字段?
第一個表格有兩個日期字段:date_submitted
和date_updated
。在某些記錄中,date_updated
爲空。這會導致我在嘗試插入第二個表時遇到數據不匹配錯誤。
這可能是因爲我將第一個表中的date_updated
字段數據綁定到FormView上的HiddenField中。然後,從HiddenField取值,並試圖將其插入到第二個表:
Dim hfDateRequestUpdated As HiddenField = FormView1.FindControl("hfDateRequestUpdated")
myDateRequestUpdated = hfDateRequestUpdated.Value
'... It then attempts to insert myDateRequestUpdated into the database.
它的工作原理時,有一個價值存在,但顯然你不能沒有插入日期/時間域訪問。我想我可以做第二個插入語句,不插入date_updated
(在date_updated
中沒有值時使用),但這是唯一的方法嗎?似乎應該有一個更容易/更少冗餘的方式。
編輯:
好。所以我試過插入SqlDateTime.Null,Nothing和DBNull.Value。 SqlDateTime.Null導致將值1/1/1900插入到數據庫中。 「Nothing」導致它插入1/1/2001。如果我嘗試使用DBNull.Value,它告訴我它不能被轉換爲字符串,所以也許我沒有在那裏做一些事情。無論如何,我希望,如果有什麼可插入Access中的字段將保持空白,但它似乎有東西來填補它...
編輯:
我得到DBNull.Value工作,並且它插入一個完全空白的值。所以這是我的最終工作代碼:
Dim hfDateRequestUpdated As HiddenField = FormView1.FindControl("hfDateRequestUpdated")
Dim myDateRequestUpdated = Nothing
If hfDateRequestUpdated.Value = Nothing Then
myDateRequestUpdated = DBNull.Value
Else
myDateRequestUpdated = DateTime.Parse(hfDateRequestUpdated.Value)
End If
謝謝大家!
我不明白爲什麼有在這個問題上downvote。我扭轉了它,但我仍然感到困惑。 – Fionnuala 2012-04-20 07:55:00
我同意,這是一個有趣的問題。這些日期字段總是咬我。 – Steve 2012-04-20 08:13:46
你可以添加一個代碼示例顯示你如何插入數據? – phoog 2012-04-20 15:45:25