如下代码什么意思? Public Sub Commit() m_tran.Commit() m_tran.Dispose() m_tran = Nothing End SubPublic Sub Commit() '过程开始
m_tran.Commit() '提交事务
m_tran.Dispose() '去掉事务
m_tran = Nothing '设置事务处理对象m_tran为空
End Sub '过程结束
楼主这个Commit过程体貌似是在做事务处理操作,代码不完全 。
详谈如何在VB.NET使用ORACLR数据库事务麻烦告诉我Oracle.DataAccess.Client 命名空间是 ODP.NET vb.net事物处理的一部分vb.net事物处理 , 它包含许多类,其中有OracleConnection、OracleCommand 和 OracleTransaction 。示例程序用到vb.net事物处理了这些类 。VB.NET使用ORACLR第 1 步创建一个 OracleConnection 对象连接到 Oracle 数据库,然后打开该连接 。
在C# 中:OracleConnection myOracleConnection =new OracleConnection( "User Id=store;Password=store;Data Source=ORCL" ); myOracleConnection.Open(); 在VB.NET 中:Dim myOracleConnection As New OracleConnection( _ "User Id=store;Password=store;Data Source=ORCL") myOracleConnection.Open() User Id 和 Password 属性指定vb.net事物处理了您所要连接到的模式的数据库用户和口令 。Data Source 属性指定了数据库的 Oracle Net 服务名称vb.net事物处理;初始数据库的默认服务名称为 ORCL 。如果您使用的不是初始数据库,或者您的服务名称不同 , 那么您需要在程序中修改 Data Source 属性的设置 。VB.NET使用ORACLR第 2 步创建一个 OracleTransaction 对象 , 然后调用 OracleConnection 对象的 BeginTransaction() 方法启动事务 。在C# 中:OracleTransaction myOracleTransaction = myOracleConnection.BeginTransaction(); In VB.NET: Dim myOracleTransaction As OracleTransaction = _ myOracleConnection.BeginTransaction() VB.NET使用ORACLR第3 步创建一个 OracleCommand 对象,用于存储 SQL 语句 。在C# 中:OracleCommand myOracleCommand = myOracleConnection.CreateCommand(); 在VB.NET 中:Dim myOracleCommand As OracleCommand = myOracleConnection.CreateCommand 因为OracleCommand 对象使用 OracleConnection 对象的 CreateCommand() 方法创建的 , 所以它自动使用在第 2 步中为 OracleConnection 对象设置的事务 。VB.NET使用ORACLR第 4 步将OracleCommand 对象的 CommandText 属性设为向表 product_types 中添加一行的第一条 INSERT 语句 。
在C# 中:myOracleCommand.CommandText = "INSERT INTO product_types (" + " product_type_id, name" + ") VALUES (" + " 3, 'Magazine'" + ")"; 在VB.NET 中:myOracleCommand.CommandText = _ "INSERT INTO product_types ("_ " product_type_id, name"_ ") VALUES ("_ " 3, 'Magazine'"_ ")" VB.NET使用ORACLR第 5 步
使用OracleCommand 对象的 ExecuteNonQuery() 方法运行 INSERT 语句 。
在C# 中:myOracleCommand.ExecuteNonQuery(); 在VB.NET 中:myOracleCommand.ExecuteNonQuery(); VB.NET使用ORACLR第 6 和第 7 步将OracleCommand 对象的 CommandText 属性设为向表 Products 中添加一行的第二条 INSERT 语句,并运行它 。
在C# 中:myOracleCommand.CommandText = "INSERT INTO products (" + " product_id, product_type_id, name, description, price" + ") VALUES (" + " 5, 3, 'Oracle Magazine', 'Magazine about Oracle', 4.99" + ")"; myOracleCommand.ExecuteNonQuery(); 在VB.NET 中:myOracleCommand.CommandText = _ "INSERT INTO products ("_ " product_id, product_type_id, name, description, price"_ ") VALUES ("_ " 5, 3, 'Oracle Magazine', 'Magazine about Oracle', 4.99"_ ")" myOracleCommand.ExecuteNonQuery() VB.NET使用ORACLR第 8 步使用OracleTransaction 对象的 Commit() 方法提交数据库中的事务 。
在C# 中:myOracleTransaction.Commit(); 在VB.NET 中:myOracleTransaction.Commit() 在完成 Commit() 方法之后,由 INSERT 语句添加的两行将在数据库中永久记录 。VB.NET使用ORACLR第 9 步使用Close() 方法关闭 OracleConnection 对象 。在C# 中:myOracleConnection.Close(); 在VB.NET 中: myOracleConnection.Close() 编译并运行示例程序要编译 C# 示例程序,您可以使用 csc 命令运行 C# 编译器 。因为程序使用 Oracle Data Access DLL , 所以您应使用 /r 选项指定该 DLL 的完整路径 , 例如:注意:您需要用您计算机上的相应路径来替换该 DLL 的路径 。此外,如果您的计算机找不到 csc 编译器 , 那么您可能需要运行 Microsoft sdkvars.bat 脚本来首先设置 .NET SDK 的环境变量;您可以在安装 .NET SDK 的 bin 目录中找到该脚本 。如果您遇到以下错误:Example1.cs(10,7):error CS0246:The type or namespace name 'Oracle' could not be found (are you missing a using directive or an assembly reference?) 这说明您没有在编译命令中正确指定 Oracle Data Access DLL 。(有关设置的信息,请参阅 John Paul Cook 的技术文章“在 Oracle 数据库上构建 .NET 应用程序” 。) 下面是用于编译 VB.NET 程序的等价命令:vbc TransExample1.vb /r:C:\oracle\product\10.1.0\ Client_1\bin\Oracle.DataAccess.dll /r:system.dll /r:system.data.dll 接下来,输入以下命令 , 运行示例: An exception was thrown Message = ORA-12514:TNS:listener does not currently know of service requested in connect descriptor 您将看到程序的输出 。不过,如果您遇到类似以下的异常这说明 OracleConnection 对象的连接字符串中的 Data Source 的设置不正确 。您应当咨询您的 DBA 或查阅 Oracle Net 文档以获得更多详细信息 。如果您使用的是 VS .NET,那么您可以遵循以下指示来编译和运行 C# 程序 TransExample1.cs:
推荐阅读
- 经营类头条游戏,头条游戏工作室
- 鹰潭专注sap技术服务,鹰潭做服务的地方
- 游戏中怎么使用角色扮演,游戏中的角色扮演
- 像素龙角色扮演游戏,像素画龙
- mysql怎么跳回上一行 mysql怎么退回上一行
- js实现盒子移动,js怎么创建盒子
- 下载萌拍,帮我下载萌拍
- 巧虎益智小游戏,巧虎益智小游戏怎么玩
- c语言库函数使用方法 c语言库函数是什么意思