我有一个在mvc中将excel导入数据库的工作代码。在这些我有一个日期列,导入后留空。我想要的是在导入时插入日期。
这是我现在的代码:
[HttpPost]
public ActionResult UploadCsv(HttpPostedFileBase attachmentcsv, Device device)
{
CsvFileDescription csvFileDescription = new CsvFileDescription
{
SeparatorChar = ',',
FirstLineHasColumnNames = true
};
CsvContext csvContext = new CsvContext();
StreamReader streamReader = new StreamReader(attachmentcsv.InputStream);
IEnumerable<Device> list = csvContext.Read<Device>(streamReader, csvFileDescription);
db.Devices.AddRange(list);
// code for insert Date now on my date column because it leaves blank
db.SaveChanges();
return RedirectToAction("Index","Devices");
}
答案 0 :(得分:0)
我假设您的数据库属性名称是设备类中的UploadDateTime。
List<Device> list = csvContext.Read<Device>(streamReader, csvFileDescription).ToList();
//Use below line of code to assign datetime to all object in list then add and save.
list.ForEach(x=> x.UploadDateTime = DateTime.Now);
db.Devices.AddRange(list);
// code for insert Date now on my date column because it leaves blank
db.SaveChanges();
修改强>
如果list.ForEach
无效,那么您可以像这样使用
//or u can use foreach like below
foreach ( var item in list)
{
item.UploadDateTime = DateTime.Now;
}