注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

事务处理--基于Micrsoft EnterpriseLibrary(转)  

2011-11-03 13:32:42|  分类: MS SQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;

/// <summary>
/// 事务处理
/// </summary>
public class TransactionHandle
{
public TransactionHandle()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 取消订单事务处理
/// </summary>
/// <param name="OrderId">订单ID</param>
/// <param name="MemberId">会员ID</param>
/// <returns></returns>
public bool CancelOrder(int OrderId,int MemberId,int useScroe,float useBalance)
{
OrderDetail od = new OrderDetail();
Product pro = new Product();
subProduct subPro = new subProduct();
ProductStock proStock = new ProductStock();
Database db = DatabaseFactory.CreateDatabase();
///开始事务处理
using (DbConnection conn = db.CreateConnection())
{
conn.Open();
DbTransaction transaction = conn.BeginTransaction();
try
{
//获取相关产品
od.orderId = OrderId;
DataTable dt = od.getProListByOrderId(transaction,db);
//更新产品库存
foreach (DataRow dr in dt.Rows)
{
pro.proId = int.Parse(dr["Pro_Id"].ToString());
//购买量
int num = int.Parse(dr["pro_Num"].ToString());
int isCuxiao = int.Parse(dr["Pro_IsCuxiao"].ToString());
if (pro.updateStore(pro.proId, num, transaction, db))
{
//若为促销产品,跟新促销量
if (isCuxiao == 1)
{
if (!pro.updateCuxiaoNum(num, transaction, db))
{
transaction.Rollback();
return false;
}
}
subPro.pro_Sub_No = dr["sub_Pro_No"].ToString();
//更新子类产品库存
if (subPro.updateStore(subPro.pro_Sub_No, num, transaction, db))
{
//更新库存流水账
proStock.proNo = subPro.pro_Sub_No;
proStock.stockChangeTime = DateTime.Now;
proStock.stockChangeNum = num;
if (!proStock.addStock(transaction, db))
{
transaction.Rollback();
return false;
}
}
else
{
transaction.Rollback();
return false;
}

}
else
{
transaction.Rollback();
return false;
}
}
//更新订单表、会员积分、余额
Order order = new Order();
order.orderId = OrderId;
order.orderStatus = 6;
if (order.upDateStatusByOrderId())
{
Member mem = new Member();
mem.MemberId = MemberId;
//更新积分、余额
if (mem.updateScoreAndBalance(useScroe, useBalance, transaction, db))
{
//更新积分明细表

return true;
}
else
{
transaction.Rollback();
return false;
}
}
else
{
return false;
}

}
catch(Exception e)
{
transaction.Rollback();
return false;
}
}

}


}
  评论这张
 
阅读(834)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017