[英]Issues with DateTime.Now C# When adding records to database
我的項目有一個奇怪的問題。 我有一個自動更新表格的上傳 excel 文件。 上傳部分無關緊要,只是為了清楚起見添加它。 使用它時,我將 dateTime 稱為CreatedDate = System.DateTime.Now
。 它沒有從 excel 文件中得到這個。 我收到超出范圍錯誤 - dateTime2 到 dateTime 的轉換。 該表具有該列的dateTime
時間。 我在撓頭,因為我在另一個 controller 的另一個表中有相同的確切代碼,它工作正常。 在 SQL 中同時創建的表。 所以代碼和表格是准確的。 一個給出錯誤,另一個沒有。 日期通過斷點恢復正常。 下面的代碼中是否有您可以看到會導致此問題的內容?
[HttpPost]
public ActionResult Add(HttpPostedFileBase FileUpload)
{
GeneralEntities objEntity = new GeneralEntities();
string data = "";
if (FileUpload != null)
{
if (FileUpload.ContentType == "application/vnd.ms-excel" || FileUpload.ContentType == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
string filename = FileUpload.FileName;
if (filename.EndsWith(".xlsx"))
{
string targetpath = Server.MapPath("~/Documents/DetailFormatInExcel/");
FileUpload.SaveAs(targetpath + filename);
string pathToExcelFile = targetpath + filename;
string sheetName = "Sheet1";
var excelFile = new ExcelQueryFactory(pathToExcelFile);
var Equipment = from a in excelFile.Worksheet<AirFloatTablesExcelModel>(sheetName) select a;
foreach (var a in Equipment)
{
var ishaveModel = db.EquipmentModels.Where(d => d.Title == a.EquipmentModel).FirstOrDefault();
AirFloatTables at = new AirFloatTables
{
AirFloatTableId = Guid.NewGuid(),
EquipmentModelId = ishaveModel.EquipmentModelId,
Size = a.Size,
Type = a.Type,
TiltHeight = a.TiltHeight,
DWGRef = a.DWGRef,
Price = a.Price,
SortOrder = a.SortOrder,
CreatedBy = User.Identity.Name,
CreatedDate = System.DateTime.Now
};
db.AirFloatTables.Add(at);
db.SaveChanges();
}
}
else
{
data = "This file is not valid format";
TempData["Message"] = data;
}
return RedirectToAction("Index");
}
else
{
data = "Only Excel file format is allowed";
TempData["Message"] = data;
return RedirectToAction("Index");
}
}
else
{
if (FileUpload == null)
{
data = "Please choose Excel file";
}
TempData["Message"] = data;
return RedirectToAction("Index");
}
}
更新:值得一提的是,我從代碼中取出了創建日期,然后在 SQL 中放入GetDATE()
列。 問題仍然存在所以它沒有發生在CreatedDate
上。 如果碰巧UpdatedDate
是問題,我不知道為什么會這樣。 調試時,我確實看到UpdatedDate
確實返回零但是我的代碼不需要插入UpdatedDate
那么它為什么還要嘗試插入它呢? 或者它只是一個代碼東西,它看到它並標記它不正確。 如果是這樣的話,那為什么我的另一個controller里的代碼,就是一模一樣,不是做同樣的事情呢?
您沒有存儲UpdatedDate
的值,該值可以為空,為真,但此錯誤主要發生在出於任何原因嘗試將值為 0 的年、月、日等的 DateTime 插入/更新為值時.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.