winform程序中如何控制事务?

winform程序中如何控制事务?,第1张

首先澄清一点,事务控制与前台是winform还是asp.net没有关系,基本方法是一样的。

根据你连接数据库的不同,事务控制的方法有所不同。

对于SQL server来说,一般是调用connection的BeginTransaction方法开始事务,执行完成后用commit来提交,错误处理中使用Rollback来回滚。

而对于Oracle来说,打开一个connection就自动开始事务,执行完成后commit就可以了,出现错误一样用RollBack来回滚。

Java中为了控制事务的一致性,会使用插入回滚点、callback方法,保证数据不被篡改,示例如下:

public String delete(String id) {

String ID = id

 db = new getConnection()

 Connection con = db.getConnection()

 try {

con.setAutoCommit(false)

db.executeUpdate("delete from helloworld where ID=" + ID)//更新 *** 作1

db.executeUpdate("delete from helloworld _book where ID=" + ID)//更新 *** 作2

db.executeUpdate("delete from helloworld_user where ID=" + ID)//更新 *** 作3

con.commit()//提交JDBC事务

con.setAutoCommit(true)

db.close()

return “success”

 }

 catch (Exception e) {

con.rollBack()//回滚JDBC事务

e.printStackTrace()

db.close()

return “fail”

}

}

在这一个随笔中将介绍在package中如何使用事务来保证数据的完整性和一致性。在SSIS中有两种事务:

分布式事务处理事务(Distributed Transaction Coordinator Transactions):在task,package中使用单独一个或者多个事务处理

本地事务(Native Transaction):SQL Server引擎级别的事务,在一个连接中使用T-SQL中的事务

注意:在SQL Server联机丛书中MSDTC是这样定义的:Microsoft 分布式事务处理协调器 (MS DTC)

允许应用程序跨两个或多个 SQL Server 实例扩展事务。此外,该协调器还允许应用程序参与由符合 Open Group DTP XA

标准的事务管理器管理的事务。

在这里我们将用4个小的练习来学习SSIS中的事务,他们分别是:

单个的package:使用DTC建立一个事务

单个的package:使用DTC扩展多个事务

2个package:使用DTC建立一个事务

单个package:使用T-SQL中的事务,就是本地事务

在package中使用该事务需要设置package或者task的属性。如果动手做这些练习,会看到这些属性更加精确的解释,如下图1


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11462512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存