我有一個Excel文件(.xlsx),我試圖將文件的內容上傳到Sql服務器表中。 Iam使用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();
}
數據插入後:
只有最後一行被插入並且f Excel表格中的第一列值缺失。表中的xid列是一個自動增量列。
此過程在MySql中使用'load data infile'很容易,但我只是遷移到了Sql server。我在代碼中做錯了什麼。建議請。
你只得到最後一行或只是沒有收到第一行? – sgeddes
對不起,我剛剛發現我只是錯過了第一行。 – Cdeez
嘗試添加HDR = NO到您的連接字符串... – sgeddes