我想在我的數據庫中插入10000+行快速(我嘗試了linqtosql,花了我2分多鐘),並在互聯網上的研究後,我發現了有關SQL批量複製,但我並不真正瞭解它。有人能給我一個很好的例子嗎? 我填寫從.csv文件列表,所以我所有的數據都在此在asp.net中的sql批量插入c#
List<myTable> datalist = new List<myTable>();
我也有爲了執行SQL事務的上下文。
我想在我的數據庫中插入10000+行快速(我嘗試了linqtosql,花了我2分多鐘),並在互聯網上的研究後,我發現了有關SQL批量複製,但我並不真正瞭解它。有人能給我一個很好的例子嗎? 我填寫從.csv文件列表,所以我所有的數據都在此在asp.net中的sql批量插入c#
List<myTable> datalist = new List<myTable>();
我也有爲了執行SQL事務的上下文。
要使用SqlBulkCopy
您需要DataTable
或IDataReader
。如果你有一個List<T>
,仍然可以正常工作 - 通過工具,如FastMember這使得從對象序列的IDataReader
,例如:
using(var bcp = new SqlBulkCopy(connection))
using(var reader = ObjectReader.Create(data, "Id", "Name", "Description"))
{
bcp.DestinationTableName = "SomeTable";
bcp.WriteToServer(reader);
}
(明顯的地方使用datalist
的data
;字符串之後是成員映射到列 - 你可以在最新版本的C#代替"Id"
這裏使用nameof
,即nameof(myTable.Id)
)
如果您想直接從CSV沒有List<T>
中間工作,CsvReader會更合適。
「名稱'ObjectReader'在當前上下文中不存在' –
@ L.Achilles是的,這是一個使用FastMember的例子 - 使用它你需要從nuget安裝FastMember –
哦,不幸的是我無法下載新的nuget軟件包,因爲我無法通過該PC訪問任何互聯網。 –
檢查教程,使用新數據庫創建新項目並執行批量複製。理解了本教程後,開始在您的案例中實施它。 – mybirthname
真正有用的建議lol –