如何在将Excel导入数据库时​​添加额外的列?

时间:2012-11-12 06:43:55

标签: c# asp.net sql sql-server

我正在将一个excelsheet导入sql server数据库,excel中有一个名为FlightNumber的列,其格式为AI-2000,AI-2564等。我在数据库中有FlightNumber列但是还有另一个名为FlightId的列应该有值从excel的flightnumber派生(通过删除前3个字符)例如: 如果excel有FlightNumber:AI-2032,db中的FlightId值应该是2032.我该怎么做?我是初学者,所以你可能需要解释一些代码。

这就是我读excel的方式:

DataTable dt7 = new DataTable();
dt7.Load(dr);
DataRow[] ExcelRows = new DataRow[dt7.Rows.Count];
DataColumn[] ExcelColumn = new DataColumn[dt7.Columns.Count];

DataRow[] ExcelRows = new DataRow[dt7.Rows.Count];
//=================================================
for (int i1 = 0; i1 < dt7.Rows.Count; i1++)
 {
   if (dt7.Rows[i1]["PP NO"] == null)
      dt7.Rows[i1]["PP NO"] = 0;
 }

我也在使用SqlBulkCopy与列映射一起导入

1 个答案:

答案 0 :(得分:0)

试试这个

DataTable dtone = new DataTable();
dtone.Columns.Add("idNumber");
dtone.Columns.Add("idOnly", typeof(string), " substring(idNumber, 4, 100)");

dtone.Rows.Add("AI-2000");
dtone.Rows.Add("AE-2001");
dtone.Rows.Add("AF-2002");
dtone.Rows.Add("AH-2003");

此处第3个参数是DataColumn.Expression,它根据您已存在的列值指定默认值,以了解有关此visit here的更多信息