请教:我在学习调试《实战突击:ASP.NET项目开发案例整合》第21章企业级通用进销存软件 入库单确认时出现错误信息
发表在ASP.NET图书答疑 2012-03-05
是否精华
版块置顶:
public bool AuditPurchase(int id, bool isAudit, string operatorCode)
        {
            using (TransactionScope ts = new TransactionScope())//开启DTC事务
            {
                TPurchase tPur = dao.GetPurchase(id);   //取入库单组合实体
                PurchaseContent content = tPur.Content; //取入库单主内容实体
                if (content.AuditFlag == true)  //如果入库单已审核
                {
                    throw new Exception("该单据已经审核" + content.PurchaseBillCode);
                }
                foreach (TPurchaseDetail tPurDetail in tPur.Detail) //遍历入库单货品
                {
                    Store storeParam = new Store(); 
                    storeParam.Warehouse = tPur.Content.WareHouse;
                    storeParam.ProductCode = tPurDetail.DetDetail.ProductCode;
                    Store sto = null;
                    //根据仓库、货品代码取库存表中该货品信息
                    sto = daoStore.GetStore(storeParam);    
                    if (sto == null)//库存中没有该货品
                    {
                        sto = new Store();  //创建库存表实例
                        sto.Warehouse = tPur.Content.WareHouse;
                        sto.ProductCode = tPurDetail.DetDetail.ProductCode;
                        sto.Quantity = tPurDetail.DetDetail.Quantity;
                        sto.Price = tPurDetail.DetDetail.Price;
                        sto.Amount = sto.Quantity * sto.Price;
                        daoStore.InsertInfo(sto);   //将该货品信息插入到库存表
                        sto.Memo = "";
                    }
                    else  //库存中有该货品
                    {
                        sto.Quantity += tPurDetail.DetDetail.Quantity;  //累加货品数量
                        //累加计算货品金额
                        sto.Amount += tPurDetail.DetDetail.Quantity * tPurDetail.DetDetail.Price;
                        if (sto.Quantity >0)
                            sto.Price = sto.Amount / sto.Quantity;  //根据金额、数量计算单价
                        [font color=#FF0000]daoStore.UpdateInfo(sto);   //更新库存表
[/font]                    }
                }
                content.AuditFlag = isAudit;    //入库审核标志
                content.Operator = operatorCode;
                content.OperateDate = DateTime.Now;
                dao.UpdateInfo(content);    //更新入库单的审核标志
                ts.Complete();  //提交事务

           }
            return true;

        }

    运行到“更新库存表”一行出错, 错误信息"没为当前数据上下文实例启用对象跟踪。"
    运行的源代码我未修改,前面的功能菜单全部通过,就是试“入库单确认”卡住,试了两个星期,找了一些资料,调整了系统设置,还是通不过,出现几种错误信息(请看附件),是不是系统一些其他设置有问题?




分享到:
精彩评论 1
东方_mrkj
学分:0 LV1
2012-03-07
沙发
读者你好:
    尝试修改程序,将信息作为只读信息检索:DataContext.ObjectTrackingEnabled = false, 可以试一试。或者按下面的方法试一试:
1. 在windows控制面版-->管理工具-->服务-->Distributed Transaction Coordinator-->属性-->启动
2.在CMD下运行"net start msdtc"开启服务后正常。
注:如果在第1步Distributed Transaction Coordinator 无法启动,则是因为丢失了日志文件,重新创建日志文件,再启动就行了。 重新创建 MSDTC 日志,并重新启动服务的步骤如下:
(1) 单击"开始",单击"运行",输入 cmd 后按"确定"。
(2) 输入:msdtc -resetlog (注意运行此命令时,不要执行挂起的事务)
(3) 最后输入:net start msdtc 回车,OK!
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照