知识大全 VB.NET使用OracleTransaction处理事务

Posted 语句

篇首语:自觉心是进步之母,自贱心是堕落之源,故自觉心不可无,自贱心不可有。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VB.NET使用OracleTransaction处理事务相关的知识,希望对你有一定的参考价值。

VB.NET使用OracleTransaction处理事务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

数据库事务简介   数据库事务是由一组 SQL 语句组成的一个逻辑工作单元 您可以把事务看作是一组不可分的 SQL 语句 这些语句作为一个整体永久记录在数据库中或一并撤销 比如在银行帐户之间转移资金 一条 UPDATE语句将从一个帐户的资金总数中减去一部分 另一条 UPDATE语句将把资金加到另一个帐户中 减操作和加操作必须永久记录在数据库中 或者必须一并撤销 — 否则将损失资金 这个简单的示例仅使用了两条 UPDATE 语句 但一个更实际的事务可能包含许多 INSERT UPDATE和 DELETE 语句   要永久记录一个事务中的 SQL 语句的结果 您可以通过 MIT 语句来执行提交 要撤销 SQL 语句的结果 您可以使用 ROLLBACK 语句来执行回滚 这会把所有的行重设为它们原来的状态 只要您事先没有与数据库断开 则您在执行回滚之前所做的任何修改都将被撤销 您还可以设置一个保存点 以便将事务回滚至该特定的点 同时保持事务中的其他语句原封不动   使用数据库事务(主要针对)  您可以使用 OracleTransaction 类的一个对象来表示一个事务 OracleTransaction 类包含多个属性 其中的两个为 Connection(指定与事务关联的数据库连接)和 IsolationLevel(指定事务隔离级别)  Connection 指定与该事务关联的OracleConnection对象   IsolationLevel 指定该事务的IsolationLevel 枚举类型 用于对事物的锁定 取值有Chaos ReadCommited ReadUnmited RepeatableRead Serializable Unspecified   应用程序通过针对OracleConnection对象调用 BeginTransaction 来创建OracleTransaction对象 对OracleTransaction对象执行与该事务关联的所有后续操作(例如提交或中止该事务)   Commit:提交SQL数据库事务   Rollback :从挂起状态回滚事务   您还可以使用 Save() 在事务中设置一个保存点   下面的示例创建一个 OracleConnection 和一个 OracleTransaction 它还演示了如何使用 BeginTransaction Commit 和 Rollback 方法 (这是MSDN里的范例)  需要注意的是 这些操作需要引入命名空间: Oracle DataAcess Client  Oracle DataAccess Client 命名空间是 ODP NET 的一部分 它包含许多类 其中有 OracleConnection OracleCommand 和 OracleTransaction 示例程序就用到了这些类   事务操作 Public Sub RunOracleTransaction()Sub RunOracleTransaction(myConnString As String) Dim myConnection As New OracleConnection(myConnString) myConnection Open() Dim myCommand As OracleCommand = myConnection CreateCommand() Dim myTrans As OracleTransaction Start a local transaction myTrans = myConnection BeginTransaction(IsolationLevel ReadCommitted) Assign transaction object for a pending local transaction myCommand Transaction = myTrans Try myCommand CommandText = INSERT INTO Dept (DeptNo Dname Loc) values ( TECHNOLOGY DENVER ) myCommand ExecuteNonQuery() myCommand CommandText = INSERT INTO Dept (DeptNo Dname Loc) values ( ENGINEERING KANSAS CITY ) myCommand ExecuteNonQuery() myTrans Commit() Console WriteLine( Both records are written to database ) Catch e As Exception myTrans Rollback() Console WriteLine(e ToString()) Console WriteLine( Neither record was written to database ) Finally myConnection Close() End Try End Sub

  在 NET 程序中设置事务保存点   正如本文前面所提到的那样 您可以设置一个保存点 以便将事务回滚至该特定的点 同时保持事务中的其他语句原封不动 您可以使用 OracleTransaction 类的 Save() 方法在事务中设置保存点   如果您有一个非常长的事务并且希望能够仅回滚到某个特定的时间点 那么您可能要使用保存点 例如 您可能想对 个产品做一些更改 然后设置一个保存点 然后再对另 个产品做更改 如果您在进行第二批更改时出现了错误 那么您可以回滚至保存点 使您的第一批更改原封不动   使用OracleTransaction对象需要注意的几点    )你需要在你整个事务执行中只能有唯一OracleConnection OracleCommand

  OracleTransaction 也就是说如果你事务处理过程中如果需要与数据库的操作都只能在这唯一的Command中执行 类似于:

imgCommand CommandText = sSQLimgCommand ExecuteNonQuery()或其他操作  若你新建一个连接执行其他数据库操作的话 整个事务过程就会抛出异常   )如果你需要在你SQL语句中加入参数 则你必须在你执行完提交或相关数据库操作之后将其Command的参数清空 下边举一个实际的项目里的事务函数   事务函数 <summary> 保存热点文本文件信息到数据库 </summary> Private Function SaveTextFile()Function SaveTextFile() As Boolean Dim sSQl As String sSQl = select type_id from sys_file_type where file_extname= TXT Try imgCommand CommandText = sSQl Dim typeID As Int = Convert ToInt (imgCommand ExecuteScalar()) 文件类型 读取文本信息 Dim Textblob() As Byte = GetText() sSQl = insert into t_watch_textcontent(image_id text_content type_id) values(:imageid :textcontent :typeid) 增添SQL参数 Dim Param As OracleClient OracleParameter Param = New OracleClient OracleParameter( imageid sNewImageID) imgCommand Parameters Add(Param) Param = New OracleClient OracleParameter( textcontent Textblob) imgCommand Parameters Add(Param) Param = New OracleClient OracleParameter( typeid typeID) imgCommand Parameters Add(Param) 提交信息 imgCommand CommandText = sSQl If imgCommand ExecuteNonQuery() > Then bResult = True 关键是这里 需要你手动清除参数 imgCommand Parameters Clear() End If Catch ex As Exception Me ExceptionMessage = ex bResult = False End Try Return bResult End Function cha138/Article/program/net/201311/12778

相关参考

开挖槽坑沟深度超过()米的,必须在边沿处设立两道护身栏杆,危险处,夜间应设红色标志灯

开挖槽坑沟深度超过()米的,必须在边沿处设立两道护身栏杆,危险处,夜间应设红色标志灯。A.3mB.2mC.15m【参考答案】B[拓展知识]凡在坠落高度基准面()有可能坠落的高处进行的作业称为高处作业A

开挖槽坑沟深度超过()米的,必须在边沿处设立两道护身栏杆,危险处,夜间应设红色标志灯

开挖槽坑沟深度超过()米的,必须在边沿处设立两道护身栏杆,危险处,夜间应设红色标志灯。A.3mB.2mC.15m【参考答案】B[拓展知识]凡在坠落高度基准面()有可能坠落的高处进行的作业称为高处作业A

()行为会被处五日以下拘留或者五百元以下罚款;情节较重的,处五日以上十日以下拘留,可以并处五百元以下罚款

()行为会被处五日以下拘留或者五百元以下罚款;情节较重的,处五日以上十日以下拘留,可以并处五百元以下罚款。A、写恐吓信或者以其他方法威胁他人人身安全的B、公然侮辱他人或者捏造事实诽谤他人的C、多次发送

()行为会被处五日以下拘留或者五百元以下罚款;情节较重的,处五日以上十日以下拘留,可以并处五百元以下罚款

()行为会被处五日以下拘留或者五百元以下罚款;情节较重的,处五日以上十日以下拘留,可以并处五百元以下罚款。A、写恐吓信或者以其他方法威胁他人人身安全的B、公然侮辱他人或者捏造事实诽谤他人的C、多次发送

知识大全 值不值得跟这个星座的人处对象,真的很累

大家认为水瓶座的人怎么样呀,跟他们谈对象感觉好累好累呀!值不值得跟这个星座的人处对象,真的很累!我也是水瓶座啊!我觉得处对象处不处的来和星座没有关系,最主要看他本人的性格,和对你的态度好累呀你们处对象

道岔和交叉渡线处过渡调整

  在道岔处,正线上两汇流排同时接触点一般应位于受电弓中心两边分布。始触点处两接触导线应完全等高,受电弓过渡平稳,始触点后至岔尖方向,渡线导线渐渐抬高至高于正线5~10mm。保证列车在正线运行时,不会

道岔和交叉渡线处过渡调整

  在道岔处,正线上两汇流排同时接触点一般应位于受电弓中心两边分布。始触点处两接触导线应完全等高,受电弓过渡平稳,始触点后至岔尖方向,渡线导线渐渐抬高至高于正线5~10mm。保证列车在正线运行时,不会

纳税人从两处以上取得收入应该在哪处交个人所得税,是纳税人自己选择还是在收入多的那处缴纳?

您所述情况,《关于印发〈个人所得税自行纳税申报办法(试行)〉的通知》(国税发[2006]162号)第十一条第一款有明确的规定,对从两处或者两处以上取得工资、薪金所得的,纳税人可以自行选择并固定向其中一

白癜风的白斑处瘙痒是什么原因

白癜风的白斑处瘙痒是什么原因,我们都知道白癜风是一种无自觉症状的白斑性皮肤疾病,此病危害极大,但是有一些患者皮损处会出现瘙痒症状,这就是怎么回事?很多患者不理解也没有采取治疗,这样会导致病情加重,患者

白癜风的白斑处瘙痒是什么原因

白癜风的白斑处瘙痒是什么原因,我们都知道白癜风是一种无自觉症状的白斑性皮肤疾病,此病危害极大,但是有一些患者皮损处会出现瘙痒症状,这就是怎么回事?很多患者不理解也没有采取治疗,这样会导致病情加重,患者