protected void btnSave_Click(object sender, EventArgs e) { lblGridViewMsg.Text = ""; try { using (GoldEntities context = new GoldEntities()) { foreach (GridViewRow gvRow in this.gv_CargoList.Rows) { CheckBox rowChk = gvRow.FindControl("chkSaleStatus") as CheckBox; Label lblCargoCode = gvRow.FindControl("lblCargoCode") as Label; if (rowChk != null && lblCargoCode != null) { string cargoCode = lblCargoCode.Text.Trim(); DAL.Cargos updateModel = (from r in context.Cargos where r.CargoCode == cargoCode select r).FirstOrDefault(); updateModel.SaleStatus = rowChk.Checked ? 1 : 0; } } //使用隐式事务 int AffectRowsCount = context.SaveChanges(); lblGridViewMsg.Text = "保存成功[更新" + AffectRowsCount.ToString() + "条记录]"; } } catch (Exception ex) { lblGridViewMsg.Text = "保存失败![" + Utility.LogHelper.GetExceptionMsg(ex) + "]"; } }
protected void btnSave_Click(object sender, EventArgs e) { try { lblSaveMsg.Text = ""; string outMsg = ""; if (ViewState["EditType"].ToString() == "1")//新增Insert { DAL.Cargos newModel = new Cargos(); bool getNewOK = GetNewModel(out newModel, out outMsg); if (getNewOK == false) { lblSaveMsg.Text = "新增失败![" + outMsg + "]"; return; } using (GoldEntities context = new GoldEntities()) { context.Cargos.AddObject(newModel); int AffectRowsCount = context.SaveChanges(); lblSaveMsg.Text = "保存成功"; } } else//更新Update { using (GoldEntities context = new GoldEntities()) { string EditID = ViewState["EditID"].ToString(); DAL.Cargos updateModel = (from r in context.Cargos where r.CargoCode == EditID select r).FirstOrDefault(); bool getUpdateOK = GetUpdateModel(ref updateModel, out outMsg); if (getUpdateOK == false) { lblSaveMsg.Text = "更新失败![" + outMsg + "]"; return; } //context.WareHouse.Attach(updateModel); int AffectRowsCount = context.SaveChanges(); lblSaveMsg.Text = "保存成功"; } } } catch (Exception ex) { lblSaveMsg.Text = "更新失败![" + Utility.LogHelper.GetExceptionMsg(ex) + "]"; } }
protected void btnDelete_Click(object sender, EventArgs e) { try { lblCheckMsg.Text = ""; List <string> checkedDelList = GetCheckItemID(); if (checkedDelList.Count <= 0) { lblCheckMsg.Text = "请先选中待删除的项"; DAL.CommonConvert.ShowMessageBox(this.Page, "请先选中待删除的项"); return; } using (GoldEntities context = new GoldEntities()) { foreach (string delCode in checkedDelList) { DAL.Cargos delObject = (from r in context.Cargos where r.CargoCode.Equals(delCode) select r).FirstOrDefault(); context.DeleteObject(delObject); } int delRow = context.SaveChanges(); if (delRow > 0) { lblCheckMsg.Text = "删除成功![已删除" + delRow.ToString() + "项]"; DAL.CommonConvert.ShowMessageBox(this.Page, "删除成功![已删除" + delRow.ToString() + "项]"); } else { lblCheckMsg.Text = "删除失败!"; DAL.CommonConvert.ShowMessageBox(this.Page, "删除失败!"); } GridViewBind();//删除后重新绑定数据 } } catch (Exception ex) { lblCheckMsg.Text = "删除失败!"; DAL.CommonConvert.ShowMessageBox(this.Page, "删除失败!"); lblGridViewMsg.Text = "删除出现异常!详细信息:" + Utility.LogHelper.GetExceptionMsg(ex); } }
/// <summary> /// 按特定格式将各个DataSet中的数据合并到List中 /// </summary> /// <param name="dsList"></param> /// <param name="cargoList"></param> /// <param name="errorMsg"></param> /// <returns></returns> private bool FilterData(List <DataSet> dsList, out List <DAL.Cargos> cargoList, out string errorMsg) { errorMsg = ""; //存货名称 存货编码 型号 规格 计量单位 发行年份 项目名称 cargoList = new List <DAL.Cargos>(); try { foreach (DataSet ds in dsList) { foreach (DataTable dtSheet in ds.Tables) { if (dtSheet.Rows.Count == 0) { continue; } //标题行索引和数据行索引 int headRowIndex = -1, dataRowIndex = -1; //是否首行就是标题行,当首行是标题行时,无论设置hdr为何值,oledb不再将其读取为数据行 bool isHeaderInFirstRow = false; if (dtSheet.Columns.Contains("存货名称") && dtSheet.Columns.Contains("存货编码")) { isHeaderInFirstRow = true; } //找出标题列索引与字段名映射 Dictionary <string, int> ColNameIndexDic = new Dictionary <string, int>(); //如果首行不是标题行 if (isHeaderInFirstRow == false) { //找出标题行索引和数据行索引 for (int i = 0; i < dtSheet.Rows.Count; i++) { for (int j = 0; j < dtSheet.Columns.Count; j++) { if (dtSheet.Columns.Count > 0 && dtSheet.Rows[i][j].ToString() == "存货名称") { headRowIndex = i; if (i + 1 < dtSheet.Rows.Count) { dataRowIndex = i + 1; } } } } if (headRowIndex == -1 || dataRowIndex == -1) { errorMsg = "文件中未包含“存货名称”、“存货编码”等标题行和数据行"; return(false); } //找出标题列索引与字段名映射 for (int i = 0; i < dtSheet.Columns.Count; i++) { if (headRowIndex != -1) { switch (dtSheet.Rows[headRowIndex][i].ToString().Trim()) { case "存货名称": ColNameIndexDic.Add("存货名称", i); break; case "存货编码": ColNameIndexDic.Add("存货编码", i); break; case "型号": ColNameIndexDic.Add("型号", i); break; case "规格": ColNameIndexDic.Add("规格", i); break; case "计量单位": ColNameIndexDic.Add("计量单位", i); break; case "发行年份": ColNameIndexDic.Add("发行年份", i); break; case "项目名称": ColNameIndexDic.Add("项目名称", i); break; } } } } else //如何首行是标题行 { dataRowIndex = 0; //找出标题列索引与字段名映射 for (int i = 0; i < dtSheet.Columns.Count; i++) { switch (dtSheet.Columns[i].ColumnName.ToString().Trim()) { case "存货名称": ColNameIndexDic.Add("存货名称", i); break; case "存货编码": ColNameIndexDic.Add("存货编码", i); break; case "型号": ColNameIndexDic.Add("型号", i); break; case "规格": ColNameIndexDic.Add("规格", i); break; case "计量单位": ColNameIndexDic.Add("计量单位", i); break; case "发行年份": ColNameIndexDic.Add("发行年份", i); break; case "项目名称": ColNameIndexDic.Add("项目名称", i); break; } } } string[] headerColumnNames = { "存货名称", "存货编码", "型号", "规格", "计量单位" }; System.Text.StringBuilder strNoExistHeader = new System.Text.StringBuilder(); foreach (string header in headerColumnNames) { if (ColNameIndexDic.Keys.Contains(header) == false) { if (strNoExistHeader.Length > 0) { strNoExistHeader.Append(","); } strNoExistHeader.Append(header); } } if (strNoExistHeader.Length > 0) { errorMsg = "选择的Excel文件中不包含以下标题行和数据列(" + strNoExistHeader.ToString() + "),请检查上传的文件是否正确!"; return(false); } for (int i = dataRowIndex; i < dtSheet.Rows.Count; i++) { DataRow dr = dtSheet.Rows[i]; if (dr[ColNameIndexDic["存货名称"]].ToString().Trim() != "" && dr[ColNameIndexDic["存货编码"]].ToString().Trim() != "") { DAL.Cargos newCargo = new DAL.Cargos(); newCargo.CargoCode = ConvertNull(dr[ColNameIndexDic["存货编码"]]); var existSameCodeModel = (from r in cargoList where r.CargoCode == newCargo.CargoCode select r).FirstOrDefault(); if (existSameCodeModel != null)//如果缓存中已经存在相同编号的商品则跳过 { continue; } newCargo.CargoModel = ConvertNull(dr[ColNameIndexDic["型号"]]); newCargo.CargoName = ConvertNull(dr[ColNameIndexDic["存货名称"]]); newCargo.CargoSpec = ConvertNull(dr[ColNameIndexDic["规格"]]); newCargo.CargoType = 1; newCargo.CargoUnits = ConvertNull(dr[ColNameIndexDic["计量单位"]]); //2012-08-24 备注字段保留给用户使用,项目名称字段暂不显示 //if (ColNameIndexDic.Keys.Contains("项目名称")) // newCargo.Comment = ConvertNull(dr[ColNameIndexDic["项目名称"]]); //else // newCargo.Comment = ""; newCargo.Price1 = null; newCargo.Price2 = null; newCargo.Price3 = null; newCargo.Price4 = null; newCargo.Price5 = null; if (ColNameIndexDic.Keys.Contains("发行年份")) { newCargo.ProduceYear = ConvertNull(dr[ColNameIndexDic["发行年份"]]); } else { newCargo.ProduceYear = ""; } newCargo.SaleStatus = null; newCargo.Total = null; newCargo.Variation = null; cargoList.Add(newCargo); } } } } return(true); } catch (Exception ex) { errorMsg = ex.Message; return(false); } }