`

ASP.NET中的事务处理和异常处理

阅读更多

刘彦青编译 来自:yesky

使用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框架提供的异常处理功能获取系统异常。下面是一个有关的例子:

[Web Applicaion in C#]
SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
myConnection.Open();

SqlTransaction myTrans = myConnection.BeginTransaction(); //使用New新生成一个事务
SqlCommand myCommand = new SqlCommand();
myCommand.Transaction = myTrans;

try
{
myCommand.CommandText = "Update Address set location=’23 rain street’ where userid=’0001’";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Record is udated.");
}
catch(Exception e)
{
myTrans.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Sorry, Record can not be updated.");
}
finally
{
myConnection.Close();
}

  需要注意的是,如果使用OleDb类而不是Sqlclient类来定义SQL命令和连接,我们就必须使用OleTransation来定义事务。
分享到:
评论

相关推荐

    ASP.Net事务和异常处理

    压缩包中的源代码可能包含了实际的ASP.NET事务和异常处理示例,例如,如何在ASP.NET MVC或Web Forms项目中使用TransactionScope,或者如何在C#代码中实现try-catch-finally结构。通过分析这些代码,你可以更深入地...

    asp.net 中事务处理案例

    在ASP.NET中,事务处理是一项关键的技术,用于确保数据的一致性和完整性,尤其是在涉及多条数据库操作时。本案例将探讨如何利用Session和SqlTransaction对象来实现简单的事务管理,以及如何实现批量数据的整体上传。...

    ASP.NET事务和异常处理.

    **ASP.NET事务管理** 1. **事务的概念**:事务是一组数据库操作,它们被视为一个逻辑单元,要么全部成功,要么全部失败。这四个特性(ACID):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和...

    asp.net 事务处理

    下面将详细探讨ASP.NET事务处理的相关知识点。 1. **事务的基本概念**:事务是一组逻辑操作,这些操作被视为一个单一的工作单元,只有当所有操作都成功时,事务才会提交;如果有任何操作失败,整个事务都将回滚,...

    Asp.Net事务和异常处理 (三)

    【Asp.Net事务和异常处理】是开发过程中确保数据完整性和一致性的重要机制。在Asp.Net中,事务处理主要用于管理数据库操作,确保一组操作要么全部成功,要么全部回滚,防止部分完成导致的数据不一致。这主要涉及到...

    ASP.NET事务以及异常出路--vs2003

    这个视频文件很可能包含了关于ASP.NET事务和异常处理的详细教程。观看这样的资源可以帮助你深入理解这些概念,并看到实际应用的例子。通过实例学习,你将更好地了解如何在ASP.NET项目中有效地实施事务管理和异常处理...

    ASP.NET事务和异常处理 PDF

    讲座内容: 事务和异常处理是整个程序开发过程中必然要考虑的问题,那么在编写ASP.NET应用程序时,如何进行事务和异常处理呢?在本次讲座中,我们将给大家详细介绍这方面的知识。 <br/> <br/>课程讲师:...

    Asp.Net事务和异常处理 (一)

    【Asp.Net事务和异常处理】是Web应用程序开发中确保数据一致性和完整性的核心概念。在Asp.Net中,事务管理对于处理多个数据库操作的序列至关重要,这些操作必须作为一个不可分割的整体执行,以保证在系统故障或其他...

    ASP.NET事务和异常处理 Demo

    讲座内容: 事务和异常处理是整个程序开发过程中必然要考虑的问题,那么在编写ASP.NET应用程序时,如何进行事务和异常处理呢?在本次讲座中,我们将给大家详细介绍这方面的知识。 <br/> <br/>课程讲师:...

    Asp.Net事务和异常处理 (二)

    在Asp.Net开发中,事务处理是确保数据库操作一致性与完整性的关键机制。事务处理确保一组操作要么全部成功,要么全部回滚,从而避免数据不一致的情况。在本例中,我们将关注Ado.Net中的事务处理,这是一种在.NET环境...

    ASP.NET事务处理

    ASP.NET事务处理是Web开发中一个关键的概念,它主要用于确保数据操作的一致性和完整性。在ASP.NET中,事务处理通常涉及到数据库操作,如插入、更新或删除数据,以确保这些操作要么全部成功,要么全部失败,防止数据...

    ASP.NET事务和异常处理 Video.part2

    讲座内容: 事务和异常处理是整个程序开发过程中必然要考虑的问题,那么在编写ASP.NET应用程序时,如何进行事务和异常处理呢?在本次讲座中,我们将给大家详细介绍这方面的知识。 <br/> <br/>课程讲师:...

    ASP.NET事务和异常处理 Video.part1

    讲座内容: 事务和异常处理是整个程序开发过程中必然要考虑的问题,那么在编写ASP.NET应用程序时,如何进行事务和异常处理呢?在本次讲座中,我们将给大家详细介绍这方面的知识。 <br/> <br/>课程讲师:...

    在ASP.NET 2.0中操作数据之十八:在ASP.NET页面中处理BLL/DAL层的异常

    本文将探讨如何在ASP.NET页面中处理BLL和DAL层的异常,并在DAL层抛出自定义异常。 首先,了解ASP.NET页面生命周期中的事件处理。在数据绑定和更新操作中,控件如GridView会触发一系列事件,如RowUpdating和...

    在ASP.NET 2.0中操作数据:在事务里对数据库修改进行封装(源码)

    这些示例将帮助你更好地理解和应用在ASP.NET 2.0中进行事务处理的技巧,确保你的数据库操作始终安全可靠。 总之,了解如何在ASP.NET 2.0中正确使用事务是至关重要的,尤其是在处理敏感数据和关键业务流程时。通过...

    vb.net及asp.net代码手册

    10. **异常处理**:学习如何在VB.NET和ASP.NET中捕获、处理和记录异常,以提高程序的健壮性。 11. **调试与测试**:使用Visual Studio的调试工具进行代码调试,以及单元测试和集成测试的概念和实践。 12. **部署与...

    ASP.NET校友录课程设计

    ASP.NET 提供了全局错误处理机制,可以帮助开发者捕获和处理运行时错误。 8. **部署**:最后,完成的校友录系统需要部署到Web服务器上,这涉及到IIS(Internet Information Services)配置和发布策略。 文件名...

    asp.net 通用Common类库

    2. **异常处理**:类库中可能包含一个`ExceptionHelper`类,用来统一处理和封装异常信息,提供更友好的错误提示,同时记录详细的异常堆栈信息,有利于问题排查。 3. **数据访问层**:在ASP.NET项目中,数据访问层...

    Asp.net简单网络选课系统源码

    在Asp.net中,管理员页面的开发可能需要更多的权限验证和业务逻辑处理。 该系统文件名“MyElectCourse”很可能代表了项目的基本结构,包含了程序代码、数据库脚本、配置文件等多个组成部分。在Asp.net中,项目的...

Global site tag (gtag.js) - Google Analytics