Sql server SqlBulkCopy不会复制Excel工作表中的所有行

Sql server SqlBulkCopy不会复制Excel工作表中的所有行,sql-server,vb.net,sqlbulkcopy,Sql Server,Vb.net,Sqlbulkcopy,我开发了一个Windows应用程序来导入Excel文件并将数据写入SQL Server数据库表。该应用程序运行良好,但它从Excel工作表的第27行或第30行开始编写,有时从第29行开始编写。我需要将从第1行到第4500行的所有行写入数据库表 我的代码: 私有子按钮1\u单击发件人作为对象,e作为事件args处理按钮1。单击 Dim fdlg As OpenFileDialog=新建OpenFileDialog fdlg.Title=打开文件对话框 fdlg.InitialDirectory=C

我开发了一个Windows应用程序来导入Excel文件并将数据写入SQL Server数据库表。该应用程序运行良好,但它从Excel工作表的第27行或第30行开始编写,有时从第29行开始编写。我需要将从第1行到第4500行的所有行写入数据库表

我的代码:

私有子按钮1\u单击发件人作为对象,e作为事件args处理按钮1。单击 Dim fdlg As OpenFileDialog=新建OpenFileDialog fdlg.Title=打开文件对话框 fdlg.InitialDirectory=C:\ fdlg.Filter=所有文件** fdlg.FilterIndex=2 fdlg.RestoreDirectory=True 如果fdlg.ShowDialog=Windows.Forms.DialogResult.OK,则 ExcelFileName=fdlg.FileName 如果结束 'Excel 2007 Dim ExcelConnection作为新的System.Data.OleDb.OleDbConnectionProvider=Microsoft.ACE.OleDb.12.0;数据源=+ExcelFileName+;扩展属性=Excel 12.0 Xml;HDR=否; 尝试 连接,打开 特例 结束尝试 Dim expr As String=从[Sheet1$]中选择* Dim objCmdSelect As OLEDBCOMAND=新OLEDBCOMANDEXPR,ExcelConnection 作为OLEDB数据读取器的Dim objDR Dim SQLconn作为新的SqlConnection Dim ConnString As String=数据源=我的电脑名称;初始目录=myDatabase;集成安全性=真 SQLconn.ConnectionString=ConnString SQLconn.Open 使用bulkCopy作为SqlBulkCopy=New-SqlBulkCopy-sqlconn bulkCopy.DestinationTableName=ItemDetails 尝试 objDR=objCmdSelect.ExecuteReader 如果objDR.HasRows=True,则 bulkCopy.WriteToServerobjDR MessageBox.show成功导入excel文件 objDR.关闭 SQLconn.Close 如果结束 特例 MsgBoxex.ToString 结束尝试 终端使用 端接头
SQL不是按定义排序的。因此,为了保证顺序,您必须添加一个helper列,比如带有行id的列a。然后,您可以稍后使用该列来选择已排序的数据。

我发现所有数据都已写入数据库表,但其顺序与excel工作表中的顺序不同,这就是为什么我在第1行之前看到了第27、29、30行。那么,如何将excel工作表中的数据插入到数据库表中呢?