You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
4.9 KiB
C#

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.Qingquan.SynchroData
{
#region 网络同步密炼条件
/// <summary>
/// 把密炼条件数据同步至本地库
/// </summary>
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
}