ASP.NET和SQL SERVER中使用事务示例

王朝学院·作者佚名  2009-11-12
窄屏简体版  字體: |||超大  

1,SqlServer存储过程的事务处理

一种比较通用的出错处理的模式大概如下:

Create procdure prInsertProducts

(

@intProductId int,

@chvProductName varchar(30),

@intProductCount int

)

AS

Declare @intErrorCode int

Select @intErrorCode=@@Error

Begin transaction

if @intErrorCode=0

begin

-insert products

insert products(ProductID,ProductName,ProductCount)

s(@intProductId,@chvProductName,@intProductCount)

Select @intErrorCode=@@Error --每执行完一条t-sql语句马上进行检测,并把错误号保存到局部变量中

end

if @intErrorCode=0

begin

-update products

update products set ProductName='MicroComputer' where ProductID=5

Select @intErrorCode=@@Error

end

if @intErrorCode=0

commit transaction

else

rollback transaction

Return @intErrorCode --最好返回错误代号给调用的存储过程或应用程序

2,.Net中使用事务处理

SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");

myConnection.Open();

SqlTransaction myTrans = myConnection***ginTransaction(); //使用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();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航