ASP.NET - 事务存储过程

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER procedure [dbo].[proc_newOfferKongmingdeng]
@userid int,
@username varchar(20),
@usename varchar(20)='',
@dengnum varchar(50),
@dengtype bigint,
@dengshopid bigint,
@wishcontent varchar(350),
@x varchar(20),
@y varchar(20)
as begin
declare @num as int
set @num=01000;
begin tran
select @num=max(number)+1 from kongmingdeng
if(@num is null)
set @num=0;
insert into kongmingdeng(userid,username,usename,dengnum,dengtype,
dengshopid,wishcontent,addtime,x,y,number)
values(@userid,@username,@usename,@dengnum,@dengtype,@dengshopid,
@wishcontent,getdate(),@x,@y,@num)
commit tran
end
public static bool newOfferKongmingdeng(kongmingdeng den,SqlTransaction Tran)
        {
            SqlParameter[] Parameters = new SqlParameter[]
            {
                new SqlParameter("@userid",SqlDbType.Int,10),
                new SqlParameter("@username",SqlDbType.VarChar,20),
                new SqlParameter("@usename",SqlDbType.VarChar,20),
                new SqlParameter("@dengnum",SqlDbType.VarChar,50),
                new SqlParameter("@dengtype",SqlDbType.BigInt),
                new SqlParameter("@dengshopid",SqlDbType.BigInt),
                new SqlParameter("@wishcontent",SqlDbType.VarChar,350),
                new SqlParameter("@x",SqlDbType.VarChar,20),
                new SqlParameter("@y",SqlDbType.VarChar,20)
            };
            Parameters[0].Value = den.Userid;
            Parameters[1].Value = den.Username;
            Parameters[2].Value = den.Usename;
            Parameters[3].Value = den.Dengnum;
            Parameters[4].Value = den.Dengtype;
            Parameters[5].Value = den.Dengshopid;
            Parameters[6].Value = den.Wishcontent;
            Parameters[7].Value = den.X;
            Parameters[8].Value = den.Y;
            try
            {
                BDA.Provider Provider = new Heaven.BaseDataAccess.Provider();
                return Provider.ExcuteNonQuery(Tran, "proc_newOfferKongmingdeng", Parameters, CommandType.StoredProcedure) > 0 ? true : false;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
 
public static int OfferKonMingDengFromStoreBox(kongmingdeng kon,storebox storebox)
        {
            BDA.Provider Provider = new Heaven.BaseDataAccess.Provider();
            SqlTransaction Tran = Provider.BeginTran();
            try
            {
                storebox store= StoreBoxDA.GetstoreboxById(storebox.Storeid,storebox.Userid);
                if(store==null || store.Shopid!=kon.Dengshopid)
                {
                    Tran.Rollback();
                    return -1;
                }
                kon.Dengtype = store.Typeid;
                if (newOfferKongmingdeng(kon, Tran) == false)
                {
                    Tran.Rollback();
                    return -2;
                }
                if (StoreBoxDA.getProductFromStoreBox_(storebox, Tran) == false)
                {
                    Tran.Rollback();
                    return -3;
                }
                Tran.Commit();
                return 1;
            }
            catch (Exception e)
            {
                Tran.Rollback();
                throw new Exception(e.Message);
            }
        }

  

posted on 2011-09-06 23:41  David.Yun 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/LYshuqian/archive/2011/09/06/2169316.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值