示例#1
0
        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) + "]";
            }
        }
示例#2
0
 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) + "]";
     }
 }
示例#3
0
        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);
            }
        }
示例#4
0
        /// <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);
            }
        }