我试着这几个小时。
Database db = DBUtil.GetInstance().GetDataBase();
DbCommand cmd = db.GetSqlStringCommand(@"INSERT INTO [XXX] (
...
,[FirstDate]
...
) VALUES ('@FirstDate',...");
db.AddInParameter(cmd, "@FirstDate", DbType.Date, DateTime.Now );
但我总是在下面得到这个例外信息。
{System.Data.SqlClient.SqlException(0x80131904):转换失败 从字符串转换日期和/或时间时。
我该怎么做转换?或者拿起另一个DbType? DbType.DateTime2?
答案 0 :(得分:2)
您不需要在Insert Statement中为参数添加引号。 (值( '@ FirstDate'))
Database db = DBUtil.GetInstance().GetDataBase();
DbCommand cmd = db.GetSqlStringCommand(@"INSERT INTO [XXX] (
...
,[FirstDate]
...
) VALUES (@FirstDate,...");
db.AddInParameter(cmd, "@FirstDate", DbType.DateTime, DateTime.Now );
答案 1 :(得分:1)
取决于数据库中的类型,如果它是Date或DateTime。
// full date and time
db.AddInParameter(cmd, "@FirstDate", DbType.DateTime, DateTime.Now );
或
// just the date portion
db.AddInParameter(cmd, "@FirstDate", DbType.Date, DateTime.Now.Date );