在 .NET中使用Oracle数据库事务

80酷酷网    80kuku.com

  oracle|数据|数据库    在本文中,您将了解到如何在 Visual Basic .NET (VB.NET) 和 Visual C# .NET (C#) 中使用数据库事务。具体来讲,您将系统学习数据库事务、在 .NET 程序中使用 OracleTransaction 对象以及如何设置事务保存点。本文中引用的所有脚本和文件都在这里提供。本文假定您大体上熟悉 C# 和 VB.NET 编程。

  所需软件

  如果您要跟随我们逐步完成本文中给出的示例,那么您需要安装以下软件:

  Windows NT 4.0、Windows 2000、Windows XP Professional 或 Windows Server 2003

  能够访问一个已安装的 Oracle 数据库(Oracle8i 版本 3 8.1.7 或更高版本)

  Oracle 客户机(版本 10.1.0.2.0 或更高版本)

  Oracle Net(版本 10.1.0.2.0 或更高版本)

  Oracle Data Providers for .NET(版本 10.1.0.2.0 或更高版本)

  Microsoft .NET Framework(版本 1.0 或更高版本)

  Microsoft .NET 框架 SDK(版本 1.0 或更高版本)

  如果您打算使用企业服务事务或分布式事务来开发和运行应用程序,那么您还需要安装 Oracle Services for Microsoft Transaction Server(10.1.0.2.0 或更高版本)。

  您需要分别下载和安装 .NET 框架以及 SDK(先安装框架)。您还需要下载和安装 Oracle 数据库 10g,它包括 Oracle Data Provider for .NET (ODP.NET)。您可以选择在不同计算机或同一计算机上安装 ODP.NET 和数据库服务器。

  注意:ODP.NET 驱动程序针对 Oracle 数据库访问进行了优化,因此可以获得最佳性能,并且它们还支持 Oracle 数据库的丰富特性,如 BFILE、BLOB、CLOB、XMLType 等。如果您正在开发基于 Oracle 数据库的 .NET 应用程序,那么就特性和性能来讲,ODP.NET 无疑是最佳的选择。

  数据库模式设置

  首先,您需要设置数据库模式,在此我们使用一个简化的 Web 商店示例。您必须首先创建一个名为 store 的用户并按以下方式将所需的权限授予该用户(您必须首先以拥有 CREATE USER 权限的用户身份登录数据库才能创建用户):

  CREATE USER store IDENTIFIED BY store;
  GRANT connect, resource TO store;

  注意:您会在源代码文件 db1.sql 中找到前两个语句和该部分中出现的设置 store 模式的其他语句。

  接下的语句以 store 用户身份进行连接:

  CONNECT store/store;

  以下语句创建了所需的两个数据库表,名称分别为 product_types 和 products:

  CREATE TABLE product_types (
  product_type_id INTEGER
  CONSTRAINT product_types_pk PRIMARY KEY,
  name VARCHAR2(10) NOT NULL
  );

  CREATE TABLE products (
  product_id INTEGER
  CONSTRAINT products_pk PRIMARY KEY,
  product_type_id INTEGER
  CONSTRAINT products_fk_product_types
  REFERENCES product_types(product_type_id),
  name VARCHAR2(30) NOT NULL,
  description VARCHAR2(50),
  price NUMBER(5, 2)
  );

  注意:如果您在一个不同的模式中为 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;

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

[1] [2] [3] 下一页  

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: