业务系统中的基础数据删除问题,解决办法。_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 业务系统中的基础数据删除问题,解决办法。

业务系统中的基础数据删除问题,解决办法。

 2016/6/30 5:31:31  绘颜  程序员俱乐部  我要评论(0)
  • 摘要:在博客园混了也有几年了。虽然是业余的。但也确实从博客园中学习到不少东西。今天自己也开博了。作为第一篇博客,我就写写自己做业务系统时遇到的问题,和解决办法。还望各位大仙不要喷我哦。自己做客户端也有些时日了。经常的遇到基础数据的删除问题。好像有不少系统都是不能删除的吧。只是标记一下,不能使用而已。我想如果是新添加的数据,无关联数据时,物理删除也是无伤大雅的吧。大家看看我的方法吧。其实也是仿Windows的回收站功能。还请高手指点哦。首先看一下图片吧。窗体中添加DotNotBar的开关控件
  • 标签:解决办法 解决 问题 数据

在博客园混了也有几年了。虽然是业余的。但也确实从博客园中学习到不少东西。今天自己也开博了。作为第一篇博客,我就写写自己做业务系统时遇到的问题,和解决办法。还望各位大仙不要喷我哦。

自己做客户端也有些时日了。经常的遇到基础数据的删除问题。好像有不少系统都是不能删除的吧。只是标记一下,不能使用而已。

我想如果是新添加的数据,无关联数据时,物理删除也是无伤大雅的吧。大家看看我的方法吧。其实也是仿Windows 的回收站功能。还请高手指点哦。

首先看一下图片吧。窗体中添加DotNotBar的开关控件,并设置过滤条件。删除时,放到回收站内。在回收站内,再点一下删除时,会搜索此数据是否有关联数据,C#+EF示例:

        private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
        {
            if (tProductBindingSource.Current != null)
            {
                if (!switchButtonItem1.Value && MessageUtil.ShowYesNoAndTips("确认删除该笔商品数据?删除后商品将放入商品回收站内!") == DialogResult.Yes)
                {
                    var one = ((t_Product)tProductBindingSource.Current);
                    one.Enable = false;
                    db.SaveChanges();
                }
                else 
                {
                    try
                    {
                        var one = ((t_Product)tProductBindingSource.Current);
                        var more = db.t_Product.AsNoTracking().Where(p => p.ProductID == one.ProductID).Select(p => new { n = p.s_RKDetail.Count() + p.s_SellDetail.Count() + p.s_Stock.Count() + p.t_ChangeStock.Count() });
                        if (more.FirstOrDefault().n == 0)
                        {
                            db.t_Product.Remove(one);
                            db.SaveChanges();
                        }
                        else MessageUtil.ShowWarning("此商品数据,已经关联库存记录,不能物理删除!但是可以修改为新商品数据,并使用。");
                    }
                    catch (Exception err)
                    {
                        MessageUtil.ShowError("此商品删除出错!可以修改为新商品数据,并使用。错误内容为:" + err.Message);
                    }
                }
                buttonX1_Click(null, null);
            }
        }

 

其实也就是查找此数据相关联的其它表行数,并相加,只要不为0,就说明有关联数据,不能删除。再给出提示即可。

 

上一篇: 线程基础 下一篇: 没有下一篇了!
发表评论
用户名: 匿名