我有一个 Excel 文件(.xlsx),我正在尝试将文件的内容上传到 Sql 服务器表中。我正在使用 SQL 大容量复制来大容量插入数据。数据被插入到表中,但我发现数据没有正确插入。
这是示例 Excel 数据-
这是 Sql 批量复制的代码:
string fname = Path.GetFileName(fup_addRoute.FileName);
fup_addRoute.SaveAs(Server.MapPath("/Admin/UserRoutes/" + fname));
string path = Server.MapPath("/Admin/UserRoutes/" + fname);
using (OleDbConnection connection = new OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", path)))
{
OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
connection.Open();
System.Data.Common.DbDataReader dr = command.ExecuteReader();
SqlBulkCopy bulkInsert = new SqlBulkCopy(con);
bulkInsert.DestinationTableName = "routesdata";
bulkInsert.WriteToServer(dr);
connection.Close();
dr.Close();
bulkInsert.Close();
}
插入后的数据:
仅插入最后一行,并且缺少 excel 表中的第一列值。表中的 xid 列是一个自增列。
这个过程在 MySql 中使用“加载数据文件”很容易,但我刚刚迁移到 Sql 服务器。我在代码中做错了什么。请提出建议。