当前位置:首页 > 网络编程 > 软件语言 > .NET > 在.NET中如何使用Oracle数据库事务(2)

在.NET中如何使用Oracle数据库事务(2)

点击次数:73 次 发布日期:2008-11-06 08:09:38 作者:源代码网
源代码网推荐
广告载入中
注意:如果您在一个不同的模式中为 store 用户创建了这些数据库表,那么您将需要修改示例配置文件(您稍后将看到)中的模式名称。表 product_types 用于存储示例在线商店可能库存的产品类型的名称,表 products 包含了所销售产品的详细信息。

下面的 INSERT 语句为表 product_types 和 products 添加行:

  INSERT INTO product_types (
  product_type_id, name
  ) VALUES (
  1, "Book"
  );
  INSERT INTO product_types (
  product_type_id, name
  ) VALUES (
  2, "DVD"
  );

  INSERT INTO products (
  product_id, product_type_id, name, description, price
  ) VALUES (
  1, 1, "Modern Science", "A description of modern science", 19.95
  );
  INSERT INTO products (
  product_id, product_type_id, name, description, price
  ) VALUES (
  2, 1, "Chemistry", "Introduction to Chemistry", 30.00
  );
  INSERT INTO products (
  product_id, product_type_id, name, description, price
  ) VALUES (
  3, 2, "Supernova", "A star explodes", 25.99
  );
  INSERT INTO products (
  product_id, product_type_id, name, description, price
  ) VALUES (
  4, 2, "Tank War", "Action movie about a future war", 13.95
  );

  COMMIT;

接下来,您将了解有关数据库事务的内容。

数据库事务简介

数据库事务是由一组 SQL 语句组成的一个逻辑工作单元。您可以把事务看作是一组不可分的 SQL 语句,这些语句作为一个整体永久记录在数据库中或一并撤销。比如在银行帐户之间转移资金:一条 UPDATE 语句将从一个帐户的资金总数中减去一部分,另一条 UPDATE 语句将把资金加到另一个帐户中。减操作和加操作必须永久记录在数据库中,或者必须一并撤销 ― 否则将损失资金。这个简单的示例仅使用了两条 UPDATE 语句,但一个更实际的事务可能包含许多 INSERT、UPDATE 和 DELETE 语句。

要永久记录一个事务中的 SQL 语句的结果,您可以通过 COMMIT 语句来执行提交。要撤销 SQL 语句的结果,您可以使用 ROLLBACK 语句来执行回滚,这会把所有的行重设为它们原来的状态。只要您事先没有与数据库断开,则您在执行回滚之前所做的任何修改都将被撤销。您还可以设置一个保存点,以便将事务回滚至该特定的点,同时保持事务中的其他语句原封不动。


在 C# 和 VB.NET 中使用数据库事务

您可以使用 OracleTransaction 类的一个对象来表示一个事务。OracleTransaction 类包含多个属性,其中的两个为 Connection(指定与事务关联的数据库连接)和 IsolationLevel(指定事务隔离级别);本文稍后将向您介绍更多有关事务隔离级别的内容。

OracleTransaction 类包含许多操控事务的方法。您可以使用 Commit() 方法永久提交 SQL 语句,并可以使用 Rollback() 撤销这些语句。您还可以使用 Save() 在事务中设置一个保存点。

我现在将带着您逐步完成两个示例程序 ― 一个用 C# 编写 (TransExample1.cs),另一个用 VB.NET 编写 (TransExample1.vb)。这些程序演示了如何执行一个包含了两条 INSERT 语句的事务。第一条 INSERT 语句将在表 product_types 中添加一行,第二条将在表 products 中添加一行。

源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华