private void pmUpdateRecord() { string strErrorMsg = ""; bool bllIsNewRow = false; bool bllIsCommit = false; WS.Data.Agents.cDBMSAgent objSQLHelper = new WS.Data.Agents.cDBMSAgent(App.ConnectionString, App.DatabaseReside); DataRow dtrSaveInfo = this.dtsDataEnv.Tables[this.mstrRefTable].NewRow(); if (this.mFormEditMode == UIHelper.AppFormState.Insert || (objSQLHelper.SetPara(new object[] { this.mstrEditRowID }) && !objSQLHelper.SQLExec(ref this.dtsDataEnv, "QChkRow", this.mstrRefTable, "select cRowID from " + this.mstrRefTable + " where cRowID = ?", ref strErrorMsg))) { bllIsNewRow = true; if (this.mstrEditRowID == string.Empty) { WS.Data.Agents.cConn objConn = WS.Data.Agents.cConn.GetInStance(); this.mstrEditRowID = objConn.RunRowID(this.mstrRefTable); } dtrSaveInfo["cCreateBy"] = App.FMAppUserID; } dtrSaveInfo["cRowID"] = this.mstrEditRowID; dtrSaveInfo["cCode"] = this.txtCode.Text.TrimEnd(); dtrSaveInfo["cName"] = this.txtName.Text.TrimEnd(); dtrSaveInfo["cFChr"] = AppUtil.StringHelper.GetFChr(this.txtName.Text.TrimEnd()); dtrSaveInfo["cName2"] = this.txtName2.Text.TrimEnd(); dtrSaveInfo["cDept"] = this.txtQcDept.Tag.ToString(); dtrSaveInfo["cLastUpdBy"] = App.FMAppUserID; dtrSaveInfo["dLastUpd"] = objSQLHelper.GetDBServerDateTime();; this.mSaveDBAgent = new WS.Data.Agents.cDBMSAgent(App.ConnectionString, App.DatabaseReside); this.mSaveDBAgent.AppID = App.AppID; this.mdbConn = this.mSaveDBAgent.GetDBConnection(); this.mSaveDBAgent2 = new WS.Data.Agents.cDBMSAgent(App.ERPConnectionString, App.DatabaseReside); this.mSaveDBAgent2.AppID = App.AppID; this.mdbConn2 = this.mSaveDBAgent2.GetDBConnection(); try { this.mdbConn.Open(); this.mdbTran = this.mdbConn.BeginTransaction(IsolationLevel.ReadUncommitted); this.mdbConn2.Open(); this.mdbTran2 = this.mdbConn2.BeginTransaction(IsolationLevel.ReadUncommitted); string strSQLUpdateStr = ""; object[] pAPara = null; cDBMSAgent.GenUpdateSQLString(dtrSaveInfo, "CROWID", bllIsNewRow, ref strSQLUpdateStr, ref pAPara); this.mSaveDBAgent.BatchSQLExec(strSQLUpdateStr, pAPara, ref strErrorMsg, this.mdbConn, this.mdbTran); Business.Entity.QMasterSect QRefChild = new QMasterSect(App.ConnectionString, App.DatabaseReside); QRefChild.SetSaveDBAgent(this.mSaveDBAgent, this.mdbConn, this.mdbTran); QRefChild.SetSaveDBAgent2(this.mSaveDBAgent2, this.mdbConn2, this.mdbTran2); QRefChild.SaveChildTable(dtrSaveInfo, this.mstrOldCode, this.txtQcDept.Text.TrimEnd()); this.mdbTran.Commit(); this.mdbTran2.Commit(); bllIsCommit = true; if (this.mFormEditMode == UIHelper.AppFormState.Insert) { KeepLogAgent.KeepLog(objSQLHelper, KeepLogType.Insert, TASKNAME, this.txtCode.Text, this.txtName.Text, App.FMAppUserID, App.AppUserName); } else if (this.mFormEditMode == UIHelper.AppFormState.Edit) { if (this.mstrOldCode == this.txtCode.Text && this.mstrOldName == this.txtName.Text) { KeepLogAgent.KeepLog(objSQLHelper, KeepLogType.Update, TASKNAME, this.txtCode.Text, this.txtName.Text, App.FMAppUserID, App.AppUserName); } else { KeepLogAgent.KeepLogChgValue(objSQLHelper, KeepLogType.Update, TASKNAME, this.txtCode.Text, this.txtName.Text, App.FMAppUserID, App.AppUserName, this.mstrOldCode, this.mstrOldName); } } } catch (Exception ex) { if (!bllIsCommit) { this.mdbTran.Rollback(); this.mdbTran2.Rollback(); } App.WriteEventsLog(ex); #if xd_RUNMODE_DEBUG MessageBox.Show("Message : " + ex.Message + "\n" + ex.Source + "\n" + ex.StackTrace); #endif } finally { this.mdbConn.Close(); this.mdbConn2.Close(); } }