我試圖做到以下幾點:ADO.NET插入最小值到SQL Server 2008的日期欄崩潰
using (var tx = sqlConnection.BeginTransaction())
{
var command = sqlConnection.CreateCommand();
command.Transaction = tx;
command.CommandText = "INSERT INTO TryDate([MyDate]) VALUES(@p0)";
var dateParam = command.CreateParameter();
dateParam.ParameterName = "@p0";
dateParam.DbType = DbType.Date;
dateParam.Value = DateTime.MinValue.Date;
command.Parameters.Add(dateParam);
command.ExecuteNonQuery();
tx.Commit();
}
所在的表有一個SQL Server 2008中日期列。我可以通過SQL管理工作室將'01/01/0001'值插入。
如果我在ExecuteNonQuery上運行上述命令,我得到一個「SqlDateTime溢出,必須在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之間。」例外。
這是爲什麼? SQL Server日期字段確實接受01/01/0001。
嘗試'dateParam.SqlDbType = SqlDbType.Date;'而不是'dateParam.DbType = DbType.Date;' - 定義並使用'SqlDbType' - 肯定有效 – 2010-08-14 19:28:33