仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1144|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之VB.NET利用OracleTransaction处置事件

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:44:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《Java的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。oracle  数据库事件简介

  数据库事件是由一组SQL语句构成的一个逻辑事情单位。您能够把事件看做是一组不成分的SQL语句,这些语句作为一个全体永世纪录在数据库中或一并打消。好比在银行帐户之间转移资金:一条UPDATE语句将从一个帐户的资金总数中减往一部分,另外一条UPDATE语句将把资金加到另外一个帐户中。减操纵和加操纵必需永世纪录在数据库中,大概必需一并打消―不然将丧失资金。这个复杂的示例仅利用了两条UPDATE语句,但一个更实践的事件大概包括很多INSERT、UPDATE和DELETE语句。

  要永世纪录一个事件中的SQL语句的了局,您能够经由过程COMMIT语句来实行提交。要打消SQL语句的了局,您可使用ROLLBACK语句来实行回滚,这会把一切的行重设为它们本来的形态。只需您事前没有与数据库断开,则您在实行回滚之前所做的任何修正都将被打消。您还能够设置一个保留点,以便将事件回滚至该特定的点,同时坚持事件中的其他语句一成不变。

  利用数据库事件(次要针对VB.NET)

  您可使用OracleTransaction类的一个工具来暗示一个事件。OracleTransaction类包括多个属性,个中的两个为Connection(指定与事件联系关系的数据库毗连)和IsolationLevel(指定事件断绝级别)

  Connection,指定与该事件联系关系的OracleConnection工具;
  IsolationLevel,指定该事件的IsolationLevel;列举范例,用于对事物的锁定,取值有Chaos、ReadCommited、ReadUncommited、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。示例程序就用到了这些类。

  事件操纵

1PublicSubRunOracleTransaction()SubRunOracleTransaction(myConnStringAsString)
2DimmyConnectionAsNewOracleConnection(myConnString)
3myConnection.Open()
4
5DimmyCommandAsOracleCommand=myConnection.CreateCommand()
6DimmyTransAsOracleTransaction
7
8Startalocaltransaction
9myTrans=myConnection.BeginTransaction(IsolationLevel.ReadCommitted)
10Assigntransactionobjectforapendinglocaltransaction
11myCommand.Transaction=myTrans
12
13Try
14myCommand.CommandText="INSERTINTODept(DeptNo,Dname,Loc)values(50,TECHNOLOGY,DENVER)"
15myCommand.ExecuteNonQuery()
16myCommand.CommandText="INSERTINTODept(DeptNo,Dname,Loc)values(60,ENGINEERING,KANSASCITY)"
17myCommand.ExecuteNonQuery()
18myTrans.Commit()
19Console.WriteLine("Bothrecordsarewrittentodatabase.")
20CatcheAsException
21myTrans.Rollback()
22Console.WriteLine(e.ToString())
23Console.WriteLine("Neitherrecordwaswrittentodatabase.")
24Finally
25myConnection.Close()
26EndTry
27EndSub
28
  在.NET程序中设置事件保留点

  正如本文后面所提到的那样,您能够设置一个保留点,以便将事件回滚至该特定的点,同时坚持事件中的其他语句一成不变。您可使用OracleTransaction类的Save()办法在事件中设置保留点。

  假如您有一个十分长的事件而且但愿可以仅回滚到某个特定的工夫点,那末您大概要利用保留点。比方,您大概想对10个产物做一些变动,然后设置一个保留点,然后再对另10个产物做变动;假如您在举行第二批变动时呈现了毛病,那末您能够回滚至保留点,使您的第一批变动一成不变。

  利用OracleTransaction工具必要注重的几点:

  1)你必要在你全部事件实行中只能有独一OracleConnection,OracleCommand,OracleTransaction,也就是说假如你事件处置过程当中假如必要与数据库的操纵都只能在这独一的Command中实行,相似于:

imgCommand.CommandText=sSQL
imgCommand.ExecuteNonQuery()或其他操纵
  若你新建一个毗连实行其他数据库操纵的话,全部事件历程就会抛出非常

  2)假如你必要在你SQL语句中到场参数,则你必需在你实行完提交或相干数据库操纵以后将其Command的参数清空,下边举一个实践的项目里的事件函数:

  事件函数

1<summary>
2保留热门文本文件信息到数据库
3</summary>
4PrivateFunctionSaveTextFile()FunctionSaveTextFile()AsBoolean
5DimsSQlAsString
6sSQl="selecttype_idfromsys_file_typewherefile_extname=TXT"
7Try
8imgCommand.CommandText=sSQl
9DimtypeIDAsInt32=Convert.ToInt32(imgCommand.ExecuteScalar())文件范例
10读取文本信息
11DimTextblob()AsByte=GetText()
12
13sSQl="insertintot_watch_textcontent(image_id,text_content,type_id)values(:imageid,:textcontent,:typeid)"
14增加SQL参数
15DimParamAsOracleClient.OracleParameter
16Param=NewOracleClient.OracleParameter("imageid",sNewImageID)
17imgCommand.Parameters.Add(Param)
18Param=NewOracleClient.OracleParameter("textcontent",Textblob)
19imgCommand.Parameters.Add(Param)
20Param=NewOracleClient.OracleParameter("typeid",typeID)
21imgCommand.Parameters.Add(Param)
22
23提交信息
24imgCommand.CommandText=sSQl
25IfimgCommand.ExecuteNonQuery()>0Then
26bResult=True
27关头是这里,必要你手动扫除参数
28imgCommand.Parameters.Clear()
29EndIf
30CatchexAsException
31Me.ExceptionMessage=ex
32bResult=False
33EndTry
34
35ReturnbResult
36EndFunction觉得J2EE好像有很多工具,比如servlet,jboss,tomcat,ejb什么的,可是微软的.NET怎么什么也没有啊?
简单生活 该用户已被删除
沙发
发表于 2015-1-19 09:56:40 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
分手快乐 该用户已被删除
板凳
发表于 2015-1-24 12:06:47 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
透明 该用户已被删除
地板
发表于 2015-2-1 10:09:28 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
飘灵儿 该用户已被删除
5#
发表于 2015-2-7 02:58:37 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-19 23:12:20 | 只看该作者
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
海妖 该用户已被删除
7#
发表于 2015-3-6 15:49:15 | 只看该作者
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-13 04:08:10 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-20 12:03:07 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 12:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表