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#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 网络同步密炼条件
/// <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
}