WEB开发网
开发学院WEB开发ASP.NET ASP.NET和SQL SERVER中使用事务示例 阅读

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

 2009-11-11 16:53:01 来源:WEB开发网   
核心提示:1,SqlServer存储过程的事务处理一种比较通用的出错处理的模式大概如下:Create PRocdure prInsertProducts( @intProductId int, @chvProductName varchar(30), @intProductCount int)ASDeclare @intErro
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();
}

Tags:ASP NET SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接