【发布时间】:2020-07-19 23:16:05
【问题描述】:
我正在编写一个 MVC 应用程序,目前正在努力从 Excel 电子表格中导入员工数据。我在数据库中有 2 个非空列,这些列不存在于 excel 文件中(employeestatus - 位和 datecreated - 日期时间)。
在导入其他列时,有没有办法为这些列设置值?如果我在电子表格中为这些字段创建新列并将它们添加到映射中,它会完美运行,但我想避免客户必须这样做。
//where data gets stored in db
sqlBulk.DestinationTableName = "Employee";
//mappings
sqlBulk.ColumnMappings.Add("ID", "id");
sqlBulk.ColumnMappings.Add("LastName", "employeelastname");
sqlBulk.ColumnMappings.Add("FirstName","employeefirstname");
sqlBulk.ColumnMappings.Add("MI", "employeemi");
sqlBulk.ColumnMappings.Add("StreetAddress1", "streetaddress");
sqlBulk.ColumnMappings.Add("City", "employeecity");
sqlBulk.ColumnMappings.Add("State", "employeestate");
sqlBulk.ColumnMappings.Add("Zip", "employeezip");
sqlBulk.ColumnMappings.Add("Payroll", "payroll");
sqlBulk.ColumnMappings.Add("Salary", "salary");
sqlBulk.ColumnMappings.Add("POBox", "pobox");
sqlBulk.ColumnMappings.Add("POBoxCity", "poboxcity");
sqlBulk.ColumnMappings.Add("POBoxState", "poboxstate");
sqlBulk.ColumnMappings.Add("Org", "orgcode");
//write and close connection
sqlBulk.WriteToServer(dReader);
excelConnection.Close();
理想情况下,应该是这样的:
sqlBulk.ColumnMapping.Set("status", "1");
sqlBulk.ColumnMapping.Set("empdatecreated") = DateTime.Now();
我的搜索将我带入了一系列示例,其中所有需要的数据都已在电子表格中。
如果我先把它放到一个临时表中,我可以为所有行设置列值吗?
谢谢
【问题讨论】:
-
dReader的定义是什么?我的第一个想法是修改驱动它的东西,以便它添加一些带有您想要的数据的假列
标签: c# sql-server excel asp.net-mvc