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.批量新增
批量刪除: