《实战突击:ASP.NET项目开发案例整合》第21章企业级通用进销存软件 入库单确认时出错
发表在ASP.NET图书答疑 2012-02-08
是否精华
版块置顶:
PurchaseStockAudit.aspx.cs 中代码

/// <summary>
    /// 入库确认
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnAudit_Click(object sender, EventArgs e)
    {
        int cnt = 0;
        foreach (GridViewRow row in dgvInfo.Rows)   //遍历GridView所有的行
        {
            bool chk = ((CheckBox)row.Cells[1].FindControl("chkAuditFlag")).Checked;
            if (chk)    //判断该行是行被选中
            {
                cnt++;
                //取GridView行主键值
                string tempId = dgvInfo.DataKeys[row.RowIndex].Value.ToString();
                string billCode = row.Cells[2].Text;   //取GridView行单据号内容
                if (!string.IsNullOrEmpty(tempId))
                {
                    try
                    {
                        //调用业务层入库单审核方法
                        [font color=#FF0000]PurchaseService.Instance.AuditPurchase(Convert.ToInt32(tempId), true, Context.User.Identity.Name);
[/font]                        ((CheckBox)row.Cells[1].FindControl("chkAuditFlag")).Checked = false;
                    }
                    catch
                    {
                        throw new Exception("单据号" + billCode + "审核失败");
                    }
                }
            }
        }


调用 PurchaseService.cs 中 
 /// <summary>
        /// 入库单审核确认
        /// </summary>
        /// <param name="id"></param>
        /// <param name="isAudit"></param>
        /// <param name="operatorCode"></param>
        /// <returns></returns>
        public bool AuditPurchase(int id, bool isAudit, string operatorCode)
        {.......


 Store storeParam = new Store(); 
                    storeParam.Warehouse = tPur.Content.WareHouse;
                    storeParam.ProductCode = tPurDetail.DetDetail.ProductCode;
                    Store sto = null;
                    //根据仓库、货品代码取库存表中该货品信息
                    [font color=#FF0000]sto = daoStore.GetStore(storeParam);
[/font]                  
                   
                    if (sto == null)//库存中没有该货品
                    {.......

调用 StoreDao.cs 中的 
/// <summary>
        /// 根据仓库,商品代码获得库存实体
        /// </summary>
        /// <param name="obj">只需传入仓库代码,商品代码即可</param>
        /// <returns>库存实体</returns>
        public Store GetStore(Store obj)
        {
            [font color=#00FF00]return dc.Store.FirstOrDefault(itm => itm.Warehouse == obj.Warehouse && itm.ProductCode == obj.ProductCode);
[/font]        }

这里报错:从查询中返回了结果后,将无法修改数据上下文选项。

这个怎么解决??????????
分享到:
精彩评论 4
东方_mrkj
学分:0 LV1
2012-02-11
沙发
读者你好:

    关于程序中出现的问题,可以参考如下的解决方法:
    解决办法: 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!
TAN
学分:0 LV1
TA的每日心情
擦汗
2021-06-17 21:23:23
2012-03-04
板凳
我也遇到同样问题,使用你们推荐的办法,无法解决,怎么办?
mrbuhaole
学分:0 LV1
TA的每日心情
开心
2021-01-30 14:18:29
2012-09-15
地板
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
读者你好:

    关于程序中出现的问题,可以参考如下的解决方法:
    解决办法: 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!
[/FIELDSET]

回复:
  
yingshashou
学分:0 LV1
TA的每日心情
1
2020-12-04 20:12:39
2012-11-12
4L
[FIELDSET][LEGEND]引自:3楼[/LEGEND]
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
读者你好:

    关于程序中出现的问题,可以参考如下的解决方法:
    解决办法: 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!
[/FIELDSET]

回复:
  
[/FIELDSET]

回复:
  
首页上一页 1 下一页尾页 4 条记录 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经营性网站备案信息 营业执照