导入excel文件到SQL数据库,如何忽略第二行; asp.net&C#

我从Excel文件中的第一行是标题(HDR = 1)导入SQL Server 2008数据库中的数据。 事情是,第二行也是一种头,我真的不需要导入。 那么如何忽略那个excel的第二行(我猜如果第一行是标题,那么在excel中的第二行是第一行)?

在MySQL中,只是说IGNORE LINES 1在导入命令的结尾…我怎么在SQL Server中做到这一点?

这是代码的一部分:

//Create Connection to Excel work book OleDbConnection excelConnection = new OleDbConnection(excelConnectionString); //Create OleDbCommand to fetch data from Excel OleDbCommand cmd = new OleDbCommand("Select [task_code],[status_code],[wbs] from [task$]", excelConnection); excelConnection.Open(); OleDbDataReader dReader; dReader = cmd.ExecuteReader(); SqlBulkCopy sqlBulk = new SqlBulkCopy(connectionString); //Give your Destination table name sqlBulk.DestinationTableName = "task"; sqlBulk.WriteToServer(dReader); sqlBulk.Close(); 

谢谢

使用以下内容:

 ... OleDbDataReader dReader; dReader = cmd.ExecuteReader(); if( !dReader.Read() || !dReader.Read()) return "No data"; SqlBulkCopy sqlBulk = new SqlBulkCopy(connectionString); ... 

一个快速的解决scheme将是:

  1. 复制文件
  2. 使用Office互操作来删除电子表格的第二行
  3. 导入修改的电子表格

从电子表格中删除该行:

 public static void DeleteRow(string pathToFile, string sheetName, string cellRef) { Application app= new Application(); Workbook workbook = app.Workbooks.Open(pathToFile); for (int sheetNum = 1; sheetNum < workbook.Sheets.Count + 1; sheetNum++) { Worksheet sheet = (Worksheet)workbook.Sheets[sheetNum]; if (sheet.Name != sheetName) { continue; } Range secondRow = sheet.Range[cellRef]; secondRow.EntireRow.Delete(); } workbook.Save(); workbook.Close(); app.Quit(); }