一个存储过程


CREATE PROCEDURE ProductOrderSplit 
@SELL_IDSN int,
@SplitNumber int

AS

begin tran

declare @SELL_ID varchar(100)
declare @OrderNoteSN int




select  @SELL_ID=SELL_ID,@OrderNoteSN=OrderNoteSN
        from C_SENDPRODUCTDETAIL
       where SELL_IDSN=@SELL_IDSN

if(@@error<>0)goto errhandle  

begin 

insert into C_SENDPRODUCTDETAIL
                      (SELL_ID,OrderNoteSN                   
                      )
                      values
                      (@SELL_ID,@OrderNoteSN                
                      )
update C_SENDPRODUCTDETAIL set CUS_ENSURENUM=CUS_ENSURENUM-@SplitNumber where SELL_IDSN=@SELL_IDSN
commit tran
end
if(@@error<>0)goto errhandle  

errhandle:
begin
  if (@@error<>0)
   rollback tran
end
GO

C# code

public int SplitProduct(int SELL_IDSN, int SplitNumber)
        {
            SqlConnection sqlConn = HunryCommon.DataAccess.GetConnection();
            sqlConn.Open();
            SqlTransaction sqlTrans = sqlConn.BeginTransaction();
            try
            {
                SqlParameter [] commandParameters = new SqlParameter[2];
                commandParameters[0] = new SqlParameter("@SELL_IDSN",SqlDbType.Int);
                commandParameters[0].Value = SELL_IDSN;
                commandParameters[1] = new SqlParameter("@SplitNumber",SqlDbType.Int);
                commandParameters[1].Value = SplitNumber;
                HunryCommon.DataAccess.ExecuteScalar(sqlTrans,CommandType.StoredProcedure,"ProductOrderSplit",commandParameters);
                sqlTrans.Commit();
                sqlConn.Close();
                return 1;
            }
            catch(SqlException ex)
            {
                string ss=ex.ToString();
                sqlTrans.Rollback();
                sqlConn.Close();
                return 0;//有异常 
            }
        }

原文地址:https://www.cnblogs.com/Leo_wl/p/1933736.html