2012-04-02 109 views
0

我知道在論壇上有類似的問題,但我仍然遇到問題以更新日期時間字段數據庫。我沒有得到任何問題,在插入時,但在更新的時候,我得到的問題,我在格式化以同樣的方式,像這樣:錯誤:將nvarchar數據類型轉換爲日期時間數據類型導致超出範圍值

e.Values.Item("SelectionStartDate") = Format(startdate, "yyyy-MM-dd") + " " + startTime1 + ".000"

開始時間是字符串類型。

我嘗試了不同的解決方案,我在互聯網上遇到,但仍然得到這個錯誤。 請幫忙。

在此先感謝

+1

,你能否告訴一下右側實際上評估爲?如果我們看不到輸出字符串,我們不能告訴你輸出字符串有什麼問題。 – 2012-04-02 11:24:58

+0

數據類型可以是varchar而不是nvarchar嗎? – Virus 2012-04-02 11:36:54

+0

@satish雖然我同意varchar會更合適,這不會改變它是否會工作。 – 2012-04-02 11:46:49

回答

2

嘗試使用DateTime.TryParse適當format

+0

謝謝你的答案,但是,如果我做e.NewValues.Item(「SelectionStartDate」)= Date.ParseExact(e.NewValues.Item(「SelectionStartDate」),「YYYY -mm-dd HH:mm:ss.zzz「,CultureInfo.InvariantCulture)我得到這個錯誤ex = {」字符串未被識別爲有效的日期時間。「} – CPM 2012-04-02 12:54:42

+0

如果你這樣做 - 你仍然得到異常? – 2012-04-02 12:56:51

+0

是的我得到「字符串未被識別爲有效的日期時間」 – CPM 2012-04-02 13:12:17

0

如果插入的工作,我認爲這個問題是在你的計算(+ 「」 + startTime1 +」 .000" )

嘗試刪除它(更新日期到同一日期)只是爲了測試。如果有效,我建議在startdate上設置日期格式並傳遞它。你可以使用@ Johnny_D的方法。

編輯:

System.TimeSpan addDate = new System.TimeSpan(1, 0, 0, 0); //add one day 
System.DateTime new_date = startdate.Add(addDate); 
e.Values.Item("SelectionStartDate") = new_date; 
+0

我試圖這樣做,以檢查是否仍然得到錯誤e.NewValues.Item(「SelectionStartDate」)=「2009-04-01 00:00:00.000」但我仍然得到相同的錯誤。 – CPM 2012-04-02 13:27:12

+0

嘗試()更簡單的東西像datetime.now – Diego 2012-04-02 13:34:29

+0

正常工作與datetime.now ...我不知道什麼問題 – CPM 2012-04-02 13:58:25

相關問題