簡體   English   中英

通過Ado.Net 3.5和C#多次插入SQL Server 2008

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM