记录导入重复

private void button1_Click(object sender, EventArgs e)
{
using (var db = new yongyouContext())
{

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                List<InventoryFlow> inventoryFlowList = new List<InventoryFlow>();
                var stores = db.Stores.Where(p => true);

                DataTable dataTable = ExcelUtil.ExcelToTable(openFileDialog1.FileName);
                foreach (DataRow dr in dataTable.Rows)
                {
                    if (dr["单据类型"].ToString() == "销售出库单" && dr["操作类型"].ToString() == "扣减库存完成")
                    {

                        InventoryFlow inventoryFlow = new InventoryFlow();
                        inventoryFlow.StoreName = dr["仓库"].ToString();
                        inventoryFlow.StoreCode = GetCodeByName(inventoryFlow.StoreName);
                        inventoryFlow.ItemCode = dr["货品编码"].ToString();
                        inventoryFlow.DocNumber = dr["单号"].ToString();
                        inventoryFlow.ChangeQty = int.Parse(dr["库存变化量"].ToString());
                        inventoryFlow.OperateTime = DateTime.Parse(dr["操作时间"].ToString());
                        inventoryFlow.WhcOrderCode = dr["仓内操作单"].ToString();

                        String GetCodeByName(string StoreName)
                        {
                            return stores.Where(p => p.StoreName == StoreName).FirstOrDefault().StoreCode;

                        }
                        inventoryFlowList.Add(inventoryFlow);
                    }

                }
                var flows = inventoryFlowList.GroupBy(p => p.DocNumber).ToList();
                foreach (var fs in flows)
                {
                    SelectDelete(fs.Key);
                    foreach (var a in fs)
                    {

                        Console.WriteLine(a.DocNumber);
                        InventoryFlow inventoryFlow = new InventoryFlow();
                        inventoryFlow.StoreName = a.StoreName;
                        inventoryFlow.StoreCode = a.StoreCode;
                        inventoryFlow.ItemCode = a.ItemCode;
                        inventoryFlow.DocNumber = a.DocNumber;
                        inventoryFlow.ChangeQty = a.ChangeQty;
                        inventoryFlow.OperateTime = a.OperateTime;
                        inventoryFlow.WhcOrderCode = a.WhcOrderCode;
                        db.GosInventoryFlows.Add(inventoryFlow);
                        db.SaveChanges();
                    }
                }
            }

            MessageBox.Show("导入成功!");

            void SelectDelete(string DocNumber)
            {
                var InventoryFlows = db.GosInventoryFlows.Where(p => p.DocNumber == DocNumber).ToList();
                if (InventoryFlows != null)
                {

                    foreach (var item in InventoryFlows)
                    {

                        db.GosInventoryFlows.Remove(item);
                    }
                    db.SaveChanges();
                }

            }
        }
    }
}

}
记录导入一张表格中重复数据处理方法二
方法二和方法一都是导入到一张数据库表中,方法二和方法一都能保证导入地数据一样 方法二能保证导入的行数也是不变的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值