【发布时间】:2015-12-20 14:10:07
【问题描述】:
我使用datetime2 作为checkIn 和checkOut 的数据类型。以前我可以使用此代码添加到数据库中。
//value for checkIn = 12/25/2015 2:00:00 PM
checkIn = DateTime.ParseExact(Session["checkInDate"].ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture).AddHours(14);
//value for checkOut = 12/26/2015 12:00:00 PM
checkOut = DateTime.ParseExact(Session["checkOutDate"].ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture).AddHours(12);
strInsert = "INSERT INTO Reservation ( checkInDate, checkOutDate) VALUES (@checkInDate, @checkOutDate)";
cmdInsert = new SqlCommand(strInsert, conn);
cmdInsert.Parameters.AddWithValue("@checkInDate", checkIn);
cmdInsert.Parameters.AddWithValue("@checkOutDate", checkOut);
但现在它不起作用,我收到此错误;
"从字符转换日期和/或时间时转换失败 字符串”。
我认为错误是由包含“PM”和“AM”的签入值引起的,但这很奇怪,因为以前我可以将它添加到数据库中。
有人知道如何解决这个问题吗?
【问题讨论】:
-
你确定你的两栏都是
datetime2吗?在这种情况下,AddWithValue可能 可能会产生问题。您是否曾尝试使用Add并指定您的参数类型? -
您会发布异常之前日期的值吗?
-
标记了 MySQL 但 datetime2 是 SQL Server?
-
@AlexK。并使用
SqlCommand:) -
作为最佳实践,尽可能不要使用
AddWithValue。 blogs.msmvps.com/jcoehoorn/blog/2014/05/12/…
标签: c# sql sql-server datetime2