ASP.NET中的事务处理和异常处理(1)
点击次数:23 次 发布日期:2008-11-26 12:35:45 作者:源代码网
|
源代码网推荐 使用SQL-Transaction类和.NET提供的异常处理机制,我们就能够以一种可靠的方式处理数据库运行中的问题和发现系统异常。这篇小文章将解释事务处理和异常处理的概念和用法。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 什么是事务? 源代码网推荐 源代码网推荐 事务处理是由以一个单一的逻辑单位完成的一系列操作,它可以由一系列的SQL语句、SELECT、INSERT、UPDATE、DELETE组成,如果在该单位包含的操作执行完毕后没有发生错误,那么它对数据库所作的改变就是永久的了。如果一旦有错误发生,它就不会对数据库作任何修改或改变。 源代码网推荐 源代码网推荐 要定义一个事务,需要使用Begin tran命令,在这一命令之后的任何语句都将被认为是事务的一部分。命令Commit用来完成事务,并使事务对数据库所作的修改成为永久的。Rollback命令用来取消一个事务,并还原事务对数据库所作的修改。 源代码网推荐 源代码网推荐 下面是一个事务的例子: 源代码网推荐 源代码网推荐 [SQL SERVER7.0 or SQL SERVER2000] 源代码网推荐 源代码网推荐 BEGIN TRAN 源代码网推荐 源代码网推荐 INSERT INTO PRODUCT(PRODUCTID, PRODUCTNAME) VALUES("0001", "KEYBOARD") 源代码网推荐 源代码网推荐 UPDATE PRODUCT SET PRICE=12 WHERE PRODUCTID= "0002" 源代码网推荐 源代码网推荐 IF (@ERROR>0) 源代码网推荐 源代码网推荐 ROLLBACK 源代码网推荐 源代码网推荐 ELSE 源代码网推荐 源代码网推荐 COMMIT 源代码网推荐 源代码网推荐 什么是异常处理? 源代码网推荐 源代码网推荐 开发一种错误消息处理机制、并向用户提供有用的、清楚、有意义的信息也是编程人员的任务之一,异常处理就是能够提供这一服务的一种机制。一旦事务失败,服务器就会向系统发出一个用于帮助用户发现并修复邦联的数据库错误信息。我们可以异常处理功能来获取这种异常信息,并修复出现的故障。 源代码网推荐 源代码网推荐 异常处理功能的用法如下所示: 源代码网推荐 源代码网推荐 [c#] 源代码网推荐 源代码网推荐 try 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 //数据库操作命令 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 catch (Exception e) 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 ?//如果有异常发生,这部分语句将被执行 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 finally 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 ?//无论是否有异常发生,这部分语句都会得到执行 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 如何实现事务? 源代码网推荐 源代码网推荐 1、在一个存储过程中编写事务语句,并使用下面的控制发现是否有错误发生,返回相应的值,互联网应用程序会根据返回的值显示正确的和容易理解的错误信息。下面是一个事务的例子: 源代码网推荐 源代码网推荐 [Store Procedure] 源代码网推荐 源代码网推荐 CREATE PROCEDURE PRODUCT_SAVE( AS 源代码网推荐 源代码网推荐 DECLARE 源代码网推荐 源代码网推荐 (@USERID CHAR(5), 源代码网推荐 源代码网推荐 @LOCATION VARCHAR(50), 源代码网推荐 源代码网推荐 @RETURNS INT OUTPUT 源代码网推荐 源代码网推荐 ) 源代码网推荐 源代码网推荐 BEGIN TRAN 源代码网推荐 源代码网推荐 UPDATE ADDRESS SET LOCATION=@LOCATION WHERE USERID=@USERID 源代码网推荐 源代码网推荐 IF (@@ERROR>0) 源代码网推荐 源代码网推荐 BEGIN 源代码网推荐 源代码网推荐 @RETURNS=-1 /* Fail to Update */ 源代码网推荐 源代码网推荐 ROLLBACK 源代码网推荐 源代码网推荐 END 源代码网推荐 源代码网推荐 ELSE 源代码网推荐 源代码网推荐 @RETURNS=0 /* Succeed to update */ 源代码网推荐 源代码网推荐 COMMIT 源代码网推荐 源代码网推荐 RETURN @RETURNS 源代码网推荐 源代码网推荐 [Web Application in C#] 源代码网推荐 源代码网推荐 int values; 源代码网推荐 源代码网推荐 DBClass dbc=new DBClass(); // 使用new命令生成一个数据库类 源代码网推荐 源代码网推荐 values=dbc.updatedb("0001", "23 Rain Street"); //And call its function member to update record 源代码网推荐 源代码网推荐 if (values==0) 源代码网推荐 源代码网推荐 Lable_message.text= "Update successfully"; 源代码网推荐 源代码网推荐 else 源代码网推荐 源代码网推荐 Lable_message.text= "Sorry, can not update this record, please contact your DBA." 源代码网推荐 源代码网推荐 上面的例子非常适合DBA等对数据库编程非常熟悉的编程人员,他们更喜欢在存储过程中完成异常处理功能。如果对数据库编程不太熟悉,则可以采取下面的方法: 源代码网推荐 源代码网推荐 2、在.NET框架中,我们可以使用SqlTransaction类定义一个事务。此后,我们就可以使用commit或rollback函数控制事务。当然了,我们也可以使用.NET框架提供的异常处理功能获取系统异常。 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
