2012-04-02 82 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

相关问题