2013-02-22 46 views
0

我已经完成了简单的My sql事务。但有没有办法通过C#进行交易?C#插入所有行或无?

例子:

插入从一个文件中的所有行或切勿将任何东西。

在c#中这样做有任何示例或方向吗?我只通过参数化的c#语法完成单个查询执行。写一个删除查询我认为是一种矫枉过正的做法,并不适合我的需求。

+0

http://stackoverflow.com/questions/ 815586/entity-framework-using-transactions-or-savechangesfalse-and-acceptallchanges – 2013-02-22 17:54:04

回答

3

当然可以。

如果您在使用Entity Framework和MySQL,SaveChanges()将在事务中执行。它会全部成功,或者全部都会一起失败(如果需要,您可以使用TransactionScope更好地控制该方面)。

使用ADO.Net,您可以使用TransactionScope所列出的位置:

https://stackoverflow.com/a/30/141172

的TransactionScope还与DataTable中

http://www.codingbeaver.com/myblog/2010/02/19/update-datatable-in-transaction/

+0

嗨,非常感谢。看起来很有希望。同样当我搜索时,我遇到了数据表。它是否提供相同的功能? 你能评论一下TransactionScope的数据库成本吗?它是否像'我将插入你所有的行。让我看看..哎呀!一个例外。现在我必须回滚一切:(“ - 我想这就是它在内部发生的情况。” 或“嘿!我可以精确回滚” - 我没有关于这个智能如何的线索:) – Dexters 2013-02-22 21:07:49

+1

您可以使用TransactionScope使用DataTables(更新后的链接)使用事务是有成本的,除非有成千上万的行,否则很难在大多数应用程序的宏观模式下进行衡量,而不使用事务的成本可能很严重作为一个经验法则,如果我有很多行要插入,并且出于某种原因不能使用更优化的解决方案(如SqlBulkCopy),我会以1000个块的交易插入(假设应用程序可以容忍前1000个被插入但不是下一个1000)。 – 2013-02-22 21:36:28