[英]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.