protected void btn_SaveToDB_Click(object sender, EventArgs e) { #region if (CurrentPageMode == PageCurrentMode.Edit) { #region bool bResult = false; try { #region 取得畫面元件的值 DateTime processtime = DateTime.Now; #endregion DataTable dtForUpdate = dtForMasterAndDetail.GetChanges(); DataTable dtMaster = dtMain;//20090717 modified string strUID = Session["UID"].ToString(); #region Master htParams.Clear(); for (Int32 i = 0; i <= dtMaster.Rows.Count - 1; i++) { #region //舊的資料 htParams.Add("ID", dtMaster.Rows[i]["ID", DataRowVersion.Original]); htParams.Add("CODE", dtMaster.Rows[i]["CODE", DataRowVersion.Original]); htParams.Add("NAME", dtMaster.Rows[i]["NAME", DataRowVersion.Original]); htParams.Add("CREATEDATE", dtMaster.Rows[i]["CREATEDATE", DataRowVersion.Original]); htParams.Add("CREATEUID", dtMaster.Rows[i]["CREATEUID", DataRowVersion.Original]); htParams.Add("UPDATEDATE", dtMaster.Rows[i]["UPDATEDATE", DataRowVersion.Original]); htParams.Add("UPDATEUID", dtMaster.Rows[i]["UPDATEUID", DataRowVersion.Original]); htParams.Add("ENABLE", dtMaster.Rows[i]["ENABLE", DataRowVersion.Original]); htParams.Add("TYPE_RULE", dtMaster.Rows[i]["TYPE_RULE", DataRowVersion.Original]); htParams.Add("CHAN_NO", dtMaster.Rows[i]["CHAN_NO", DataRowVersion.Original]); htParams.Add("TRACK", dtMaster.Rows[i]["TRACK", DataRowVersion.Original]); htParams.Add("TYPE_NO", dtMaster.Rows[i]["TYPE_NO", DataRowVersion.Original]); htParams.Add("PO_SOURCE_NO_ST", dtMaster.Rows[i]["PO_SOURCE_NO_ST", DataRowVersion.Original]); htParams.Add("PO_SOURCE_NO_END", dtMaster.Rows[i]["PO_SOURCE_NO_END", DataRowVersion.Original]); htParams.Add("SEQ_NO", dtMaster.Rows[i]["SEQ_NO", DataRowVersion.Original]); htParams.Add("ROOT_NO", dtMaster.Rows[i]["ROOT_NO", DataRowVersion.Original]); //新的資料 htParams.Add("NEW_UPDATEDATE", processtime); htParams.Add("NEW_UPDATEUID", strUID); htParams.Add("NEW_TYPE_RULE", ddl_GetNumberRule.SelectedValue.ToString().Trim()); htParams.Add("NEW_TRACK", txt_track.Text.Trim() == "" ? null : txt_track.Text.Trim()); htParams.Add("NEW_TYPE_NO", SLP_EnumBase1.Text); htParams.Add("NEW_PO_SOURCE_NO_ST", txt_PoSource_St.Text.Trim() == "" ? null : txt_PoSource_St.Text.Trim()); htParams.Add("NEW_PO_SOURCE_NO_END", txt_PoSource_End.Text.Trim() == "" ? null : txt_PoSource_End.Text.Trim()); htParams.Add("NEW_SEQ_NO", txt_PoSource_Final.Text.Trim() == "" ? null : txt_PoSource_Final.Text.Trim()); break; #endregion } #endregion ALOModel.MaintainChainPO BCO = new ALOModel.MaintainChainPO(ConnectionDB); bResult = BCO.UpdateMasterAndDetail(htParams, dtForUpdate, strUID, dtForDetailDeleted, null); if (!bResult) { throw new Exception("更新0筆資料!"); } else { QueryData(); CurrentPageMode = PageCurrentMode.Readonly; ResultMsgLabel.Text = "更改完成"; } } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; } #endregion } else if (CurrentPageMode == PageCurrentMode.Insert) { #region Int32 iResult = 0; DateTime processtime = DateTime.Now; try { #region DataTable dtForUpdate = dtForMasterAndDetail.GetChanges(DataRowState.Added); #region Master string strCode = string.Format("{0}", SLP_StoreChain1.Text.Trim()); htParams.Clear(); htParams.Add("CODE", strCode); htParams.Add("NAME", "");//todo 20080222 htParams.Add("CREATEDATE", processtime); htParams.Add("CREATEUID", Session["UID"].ToString()); htParams.Add("UPDATEDATE", processtime); htParams.Add("UPDATEUID", Session["UID"].ToString()); htParams.Add("TYPE_RULE", ddl_GetNumberRule.SelectedValue.ToString().Trim()); htParams.Add("CHAN_NO", SLP_StoreChain1.Text); htParams.Add("TRACK", txt_track.Text.Trim()); htParams.Add("TYPE_NO", SLP_EnumBase1.Text); htParams.Add("PO_SOURCE_NO_ST", txt_PoSource_St.Text.Trim() == "" ? null : txt_PoSource_St.Text.Trim()); htParams.Add("PO_SOURCE_NO_END", txt_PoSource_End.Text.Trim() == "" ? null : txt_PoSource_End.Text.Trim()); htParams.Add("SEQ_NO", txt_PoSource_Final.Text.Trim() == "" ? null : txt_PoSource_Final.Text.Trim()); htParams.Add("ROOT_NO", s_ROOT_NO); #endregion ALOModel.MaintainChainPO BCO = new ALOModel.MaintainChainPO(ConnectionDB); iResult = BCO.CreateMasterAndDetail(htParams, dtForUpdate, null); if (iResult == 0) { throw new Exception("新增0筆資料!"); } else { QueryData(); CurrentPageMode = PageCurrentMode.Readonly; ResultMsgLabel.Text = "新增完成"; } #endregion } catch (Exception ex) { if (ex.Message.IndexOf("新增資料失敗") != -1) { ErrorMsgLabel.Text = string.Format("輸入通路:{0},主檔已存在,請查詢後編輯。", SLP_StoreChain1.Text); } else { ErrorMsgLabel.Text = ex.Message; } } #endregion } #endregion }