using System; using System.Collections.Generic; using System.Linq; using System.Text; using Mesnac.Action.Base; using System.Windows.Forms; using Mesnac.Codd.Session; using System.Data; namespace Mesnac.Action.Feeding.SynchroData { #region 网络同步密炼条件 /// /// 把密炼条件数据同步至本地库 /// public class TermSynchronous : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); #region 判断与验证 if (base.NetType == NetTypes.Local) { ShowMsg(Language(32), Language(1), System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); runtime.IsReturn = true; return; } if (!PlanCommon.IsCanConnectServer()) { //连接网络数据库失败... ShowMsg(base.Language(33)); runtime.IsReturn = true; return; } if (MessageBox.Show(Language(36), Language(1), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { runtime.IsReturn = true; return; } #endregion #region 同步密炼条件数据至本地库(PmtTerm表) //1>清空本地库密炼条件表(PmtTerm)的数据 DbHelper dbHelperLocal = NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local); if (dbHelperLocal == null) { return; } dbHelperLocal.ClearParameter(); dbHelperLocal.CommandType = CommandType.Text; string strSql1 = "Truncate table [PmtTerm]"; dbHelperLocal.CommandText = strSql1; dbHelperLocal.ExecuteNonQuery(); //2>把网络库中PmtTerm表中的数据追加到本地PmtTerm表中 DbHelper dbHelperServer = NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Server); if (dbHelperServer == null) { return; } dbHelperServer.ClearParameter(); dbHelperServer.CommandType = CommandType.Text; string strSql2 = "SELECT [Term_Code],[Term_Name],[Term_Addr],'' [Remark],getdate() [RecordTime],0 [SeqIdx], 0 [DeleteFlag] FROM [Pmt_Term] "; dbHelperServer.CommandText = strSql2; using (IDataReader reader = dbHelperServer.ToDbDataReader()) { //dbHelperLocal.BeginTransaction(); set identity_insert PmtTerm on string strSql3 = string.Empty; dbHelperLocal.ClearParameter(); dbHelperLocal.CommandText = strSql3; dbHelperLocal.ExecuteNonQuery(); while (reader.Read()) { strSql3 = "INSERT INTON [PmtTerm]([ObjID],[TermCode],[ShowName],[TermAddress],[Remark],[RecordTime],[SeqIdx],[DeleteFlag]) VALUES(@ObjID,@TermCode,@ShowName,@TermAddress,@Remark,@RecordTime,@SeqIdx,@DeleteFlag)"; dbHelperLocal.ClearParameter(); dbHelperLocal.CommandText = strSql3; dbHelperLocal.AddParameter("@ObjID", reader["ObjID"]); dbHelperLocal.AddParameter("@TermCode", reader["TermCode"]); dbHelperLocal.AddParameter("@ShowName", reader["ShowName"]); dbHelperLocal.AddParameter("@TermAddress", reader["TermAddress"]); dbHelperLocal.AddParameter("@Remark", reader["Remark"]); dbHelperLocal.AddParameter("@RecordTime", reader["RecordTime"]); dbHelperLocal.AddParameter("@SeqIdx", reader["SeqIdx"]); dbHelperLocal.AddParameter("@DeleteFlag", reader["DeleteFlag"]); dbHelperLocal.ExecuteNonQuery(); } reader.Close(); reader.Dispose(); strSql3 = " set identity_insert PmtTerm off "; dbHelperLocal.ClearParameter(); dbHelperLocal.CommandText = strSql3; dbHelperLocal.ExecuteNonQuery(); } //dbHelperLocal.CommitTransaction(); //strSql3 += "INSERT INTON [PmtTerm]([ObjID],[TermCode],[ShowName],[TermAddress],[Remark],[RecordTime],[SeqIdx],[DeleteFlag])"; //foreach (DataRow row in termData.Rows) //{ // if (isFirst) // { // strSql3 += " SELECT {0},'{1}','{2}','{3}','{4}','{5}',{6},{7}"; // isFirst = false; // } // else // { // strSql3 += " UNION "; // strSql3 += " SELECT "; // } //} //strSql3 += " set identity_insert PmtTerm off "; #endregion } } #endregion }