将excel文件导入SQL数据库,如何忽略第二行;asp.net及;C#
我正在从excel文件导入SQL Server 2008数据库中的数据,其中第一行是标题(HDR=1)。问题是第二行也是我不需要导入的标题。那么,如何忽略excel中的第二行(我猜如果第一行是标题,excel中实际的第二行是第一行) 在MySQL中,只是在import命令的末尾说忽略第1行。。。如何在SQL Server中执行此操作 下面是代码的一部分:将excel文件导入SQL数据库,如何忽略第二行;asp.net及;C#,c#,asp.net,sql-server,excel,import,C#,Asp.net,Sql Server,Excel,Import,我正在从excel文件导入SQL Server 2008数据库中的数据,其中第一行是标题(HDR=1)。问题是第二行也是我不需要导入的标题。那么,如何忽略excel中的第二行(我猜如果第一行是标题,excel中实际的第二行是第一行) 在MySQL中,只是在import命令的末尾说忽略第1行。。。如何在SQL Server中执行此操作 下面是代码的一部分: //Create Connection to Excel work book OleDbConnection exc
//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);
...
一个快速的解决办法是:
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();
}
publicstaticvoiddeleteRow(字符串pathToFile、字符串sheetName、字符串cellRef)
{
应用程序app=新应用程序();
工作簿=app.Workbooks.Open(路径文件);
对于(int sheetNum=1;sheetNum
在写入之前从数据读取器中读取两行?太棒了。。。我不能真正理解if语句的逻辑,它为什么会跳过行。。。但是谢谢:)我刚发现我丢了一些行。。。你能再解释一下它应该检查什么吗?ThanksTwo在中读取,如果用户跳过前两行,如果它们存在,如果不存在-它将返回OK,但有一些错误..它也忽略了第二行不应该忽略的地方!我想如果我设置HDR=No,会成功吗?我只需要跳过第一行(实际上是excel中的第二行),其中第一行是标题…只跳过一行重写if
如下:if(!dReader.Read())