多重插入到SQL Server 2008通过Ado.Net 3.5和c#

本文关键字:Net Ado 2008通过 插入 SQL Server | 更新日期: 2023-09-27 18:15:51

我有一个数据集合。我需要将这些记录插入SQL Server 2008。我还需要维护事务,这样如果一个插入失败,我就需要回滚所做的所有更改。

谁能提出一个最好的方法来做这件事?我使用。net 3.5。

多重插入到SQL Server 2008通过Ado.Net 3.5和c#

您需要使用SqlConnection对象的BeginTransaction方法创建一个事务。这将返回一个需要跟踪的SqlTransaction对象。

当所有条目都成功插入到数据库中时,您将在事务对象上调用Commit。

如果在处理过程中遇到异常,则需要在事务对象上调用Rollback。

粗略地说,代码是:
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/plain SQL可以使用批量插入,或者,如果你使用LINQ -to-SQL,你可以尝试使用LINQ实体数据阅读器一次插入大量数据。

通过使用大容量插入,每个批处理作为一个事务复制到服务器。如果失败,SQL Server提交或回滚每批事务。