Example #1
0
    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
    }