我正在研究C#控制檯應用程序項目。試圖將一個DateTime
值插入到SQL Server 2008中,這很好。如果我的代碼失敗,我想將默認DateTime
插入到數據庫中的表中。無法將C#的默認DateTime插入到SQL Server 2008中
當我嘗試插入時出現錯誤。
SqlTypeException是未處理:
SQLDATETIME溢出。必須介於1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之間。
下面我粘貼了具體的代碼。
try
{
...
return DateTime.Now;
}
catch (WebException ex)
{
...
return default(DateTime);
}
代碼我用來插入在日誌表的詳細信息:
connection.Open();
for (int i = 0; i < LogList.Count; i++)
{
string aprocessLogQuery = "INSERT INTO PROCESS_LOGS VALUES (@fileId, @startTime, @endTime, @transferredTime)";
command = new SqlCommand(aprocessLogQuery, connection);
command.Parameters.Add("fileId", SqlDbType.Int).Value = LogList[i].fileId;
command.Parameters.Add("startTime", SqlDbType.DateTime).Value = LogList[i].fileGeneration_StartDateTime;
command.Parameters.Add("endTime", SqlDbType.DateTime).Value = LogList[i].fileGeneration_EndDateTime;
command.Parameters.Add("transferredTime", SqlDbType.DateTime).Value = LogList[i].fileTransferred_DateTime;
dataReader.Close();
dataReader = command.ExecuteReader();
}
connection.Close();
的DateTime
的默認值是01/01/0001 12:00:00 AM
,因此它無法正常工作。任何人都可以請建議備用工作解決方案?
由於
你應該使用[datetime2數據類型](http://stackoverflow.com/questions/1334143/sql-server-datetime2-vs-datetime) – V4Vendetta
它w應該使用SqlParameter而不是字符串。每當我看到一個字符串查詢,我看到SQL注入的風險... –
看看[這個問題](http://stackoverflow.com/questions/16692647/why-when-i-insert-a-datetime -null -i-have-0001-01-01-in-sql-server/16693888#16693888):它表示在數據庫中插入'null' datetime會給出默認值。 – Spaceman