[英]Multiple insert into SQL Server 2008 via Ado.Net 3.5 and C#
我有數據收集。 我需要將這些記錄插入SQL Server2008。我還需要維護事務,因此,如果一次插入失敗,則需要回滾所有已完成的更改。
有人可以建議這樣做的最佳方法嗎? 我使用.Net 3.5。
您需要使用SqlConnection
對象的BeginTransaction方法創建事務。 這將返回您需要跟蹤的SqlTransaction
對象。
將所有項目成功插入數據庫后,您將在事務對象上調用Commit。
如果在處理期間遇到異常,則需要在事務對象上調用回滾。
大致來說,代碼是:
SqlConnection conn;
// Create and open your connection here
SqlTransaction trans = conn.BeginTransaction();
try {
// Perform your inserts
trans.Commit();
} catch(Exception ex) {
trans.Rollback();
// Report the exception
}
閱讀有關TransactionScope和System.Transactions的全部信息。
根據使用的是ADO.NET/普通SQL,可以使用批量插入,或者,如果使用的是Linq-to-SQL,則可以嘗試使用LINQ實體數據讀取器一次插入大量數據。
通過使用批量插入,每個批次將作為一個事務復制到服務器。 如果失敗,SQL Server將為每個批處理提交或回滾事務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.