进来对事物作一下总结,常用代码如下:
--创建一个银行账户表 create table bank1 ( id int identity(1,1) not null primary key, CurrentMoney int not null check(CurrentMoney >1), CurrentName nvarchar(10) )
下面就是事物的操作:
declare @sum int
set @sum =0
begin tran
  update bank1 set CurrentMoney = CurrentMoney -200 where CurrentName = 'zs'
  set @sum = @@error +@sum
  update bank1 set CurrentMoney = CurrentMoney+200 where CurrentName ='ls'
  set @sum =@@error +@sum
if(@sum >0)
 begin
     rollback tran
     print 'Error'
 end
else
 begin
  commit tran
  print 'OD'
end
Create  PROC Proc_Tran
  @money int,
@fromName nvarchar(10),
@toName nvarchar(10),
@msg nvarchar(10) output 
as
 declare @errsum int
 set @errsum =0
    begin tran
          update bank1 set CurrentMoney =CurrentMoney -@money where CurrentName =@fromName
          set @errsum=@errsum+@@error
          update bank1 set CurrentMoney =CurrentMoney +@money where CurrentName = @toName
          set @errsum =@errsum +@@error
     if(@errsum >0)
          begin
             rollback tran
             print 'Error'
            set @msg ='操作失败'
           end
     else 
   begin
   commit tran
   print 'OK'
   set @msg ='操作成功'
   end
declare @a nvarchar(10)
exec Proc_Tran 10,'ls','zs' ,@msg =@a output
print @a
ADO.NET的方面操作
 代码
代码
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Northwind;Integrated Security=True");
if(con.State == ConnectionState.Closed)
{
con.Open();
}
SqlCommand cmd = new SqlCommand("Update bank1 set CurrentMoney = CurrentMoney - 200 where CurrentName ='"+this.txtFromName.Text.Trim()+"'",con);
SqlCommand cmd1 = new SqlCommand("update bank1 set CurrentMoney = CurrentMoney + 200 where CurrentName='"+this.txtToName.Trim()+"'",con);
SqlTransaction tran = con.BeginTransaction();//调用SqlConnection对象的BeginTransaction方法来实例化SqlTransaction对象
try
{
cmd.ExcuteNonQuery();
cmd1.ExcuteNonQuery();
tran.commit();
}
catch(SqlException ex)
{
tran.RollBack();
}
    怀揣着一点点梦想的年轻人
相信技术和创新的力量
喜欢快速反应的工作节奏
相信技术和创新的力量
喜欢快速反应的工作节奏
 
                    
                     
                    
                 
                    
                 

 
        
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号