private void Save()
{
try
{
using (var context = new OAContext())
{
try
{
string ym = Convert.ToDateTime(dateEnd.EditValue).Year + Convert.ToDateTime(dateEnd.EditValue).Month.ToString().PadLeft(2, '0');
if (action == "Add")//批处理新增
{
//检查是否存在推荐使用Any
if (context.R_RouteGoalBadRate.Any(o => o.YearMonth == ym))
{
XtraMessageBox.Show("年月【" + ym + "】已批量生成过,请先删除!");
}
else
{
//AsNoTracking()无跟踪查询技术(查询出来的数据不可以进行修改)
var psrlist = context.Set<R_ProductSeriesRoute>().AsNoTracking().OrderBy(r => r.ProductSeries).ThenBy(r => r.RouteCode).ToList();
if (psrlist == null) return;
List<R_RouteGoalBadRate> rgblist = new List<R_RouteGoalBadRate>();
foreach (var psr in psrlist)
{
R_RouteGoalBadRate rgb = new R_RouteGoalBadRate();
rgb.YearMonth = ym;
rgb.ProductSeries = psr.ProductSeries;
rgb.RouteCode = psr.RouteCode;
rgb.GoalBadRate = psr.GoalBadRate;
rgblist.Add(rgb);
}
//AddRange批量插入,提高效率
context.R_RouteGoalBadRate.AddRange(rgblist);
int c = context.SaveChanges();
if (c > 0)
{
XtraMessageBox.Show("已初始化【" + ym + "】系列-工序-目标不良率!");
this.Close();
}
}
}
else if (action == "Delete")
{
//提示确认是否删除
if (this.Confirm("确定批量删除【" + ym + "】系列 - 工序 - 目标不良率么?") == DialogResult.Cancel)
return;
var deletelist = context.Set<R_RouteGoalBadRate>().OrderBy(r => r.ProductSeries).ThenBy(r => r.RouteCode).ToList();
if (deletelist == null) return;
//RemoveRange批量删除,提高效率
context.R_RouteGoalBadRate.RemoveRange(deletelist);
int c = context.SaveChanges();
if (c > 0)
{
XtraMessageBox.Show("已批量删除【" + ym + "】系列-工序-目标不良率!");
this.Close();
}
}
else if (action == "Edit")
{
//1.先查询要修改的原数据
R_RouteGoalBadRate psr = context.R_RouteGoalBadRate.Where(a => a.ProductSeries == txtProductSeries.Text.Trim() && a.RouteCode == txtRouteCode.Text.Trim()).FirstOrDefault();
//2.设置修改后的值
psr.GoalBadRate = Convert.ToDecimal(txtGoalBadRate.Text.Trim() == "" ? "0.00" : txtGoalBadRate.Text.Trim());
int c = context.SaveChanges();
if (c > 0)
{
XtraMessageBox.Show("系列:" + txtProductSeries.Text.Trim() + "工序:" + txtRouteCode.Text.Trim() + "目标不良率已变更!");
this.Close();
}
}
}
catch (Exception ex)
{
Console.WriteLine("\n错误信息:{0}\n", ex.Message);
Console.WriteLine(ex.ToString());
}
}
}
catch (Exception ex)
{
XtraMessageBox.Show(ex.ToString(), "警告");
}
}
1.批量新增
批量删除: