|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using ICSharpCode.Core;
|
|
|
|
|
using Mesnac.Action.Base;
|
|
|
|
|
using Mesnac.Controls.Base;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
using Mesnac.Codd.Session;
|
|
|
|
|
|
|
|
|
|
namespace Mesnac.Action.Default.SynchroData
|
|
|
|
|
{
|
|
|
|
|
public class Insert : DefaultAction, IAction
|
|
|
|
|
{
|
|
|
|
|
private string caption = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_Caption")); //提示
|
|
|
|
|
public void Run(RuntimeParameter runtime)
|
|
|
|
|
{
|
|
|
|
|
string msg1 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_Default_SynchroData_Insert_msg1")); //您确认要添加当前信息吗?
|
|
|
|
|
if (MessageBox.Show(msg1, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
|
|
|
|
|
{
|
|
|
|
|
runtime.IsReturn = true;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
base.RunIni(runtime); //必须调用
|
|
|
|
|
|
|
|
|
|
#region 控件数据合法性验证
|
|
|
|
|
|
|
|
|
|
bool isValidFlag = true;
|
|
|
|
|
foreach (DbMCControl control in GetAllDbMCControls())
|
|
|
|
|
{
|
|
|
|
|
if (control.BaseControl.IsValid == false)
|
|
|
|
|
{
|
|
|
|
|
isValidFlag = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (isValidFlag == false)
|
|
|
|
|
{
|
|
|
|
|
string msg2 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_Default_SynchroData_Insert_msg2")); //操作失败,操作界面存在验证失败的控件!
|
|
|
|
|
MessageBox.Show(msg2, caption, MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
|
|
|
runtime.IsReturn = true;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
ShowMsg(String.Empty); //清除消息显示控件的信息
|
|
|
|
|
|
|
|
|
|
foreach (DbMCSource dbsource in GetAllDbMCSources())
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(dbsource.DesignSource) ||
|
|
|
|
|
string.IsNullOrWhiteSpace(dbsource.DataTable.ToString()))
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
string source = dbsource.DesignSource;
|
|
|
|
|
string table = dbsource.DataTable;
|
|
|
|
|
DbHelper dbHelper = NewDbHelper(source);
|
|
|
|
|
if (dbHelper==null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
dbHelper.ClearParameter();
|
|
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
|
|
List<DbMCControl> lstDbMCControl = GetAllDbMCControls();
|
|
|
|
|
StringBuilder sqlsb_A = new StringBuilder();
|
|
|
|
|
StringBuilder sqlsb_B = new StringBuilder();
|
|
|
|
|
if (dbHelper.DbSession.ProviderFactory.GetType().FullName.Contains("OracleClientFactory"))
|
|
|
|
|
{
|
|
|
|
|
sqlsb_A.Append("INSERT INTO ").Append(table).Append(" (");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sqlsb_A.Append("INSERT INTO [").Append(table).Append("] (");
|
|
|
|
|
}
|
|
|
|
|
sqlsb_B.Append(") values (");
|
|
|
|
|
int iPara = 0;
|
|
|
|
|
foreach (DbMCControl control in lstDbMCControl)
|
|
|
|
|
{
|
|
|
|
|
if (control.DbMCSource == null ||
|
|
|
|
|
control.DbMCSource.DbMCKey != dbsource.DbMCKey ||
|
|
|
|
|
string.IsNullOrWhiteSpace(control.DataField))
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (control.DataField.Equals("GUID", StringComparison.CurrentCultureIgnoreCase))
|
|
|
|
|
{
|
|
|
|
|
iPara++;
|
|
|
|
|
string parkey = "@GUID_Para" + iPara.ToString();
|
|
|
|
|
if (dbHelper.DbSession.ProviderFactory.GetType().FullName.Contains("OracleClientFactory"))
|
|
|
|
|
{
|
|
|
|
|
parkey = ":GUID_Para" + iPara.ToString();
|
|
|
|
|
}
|
|
|
|
|
sqlsb_A.Append(control.DataField).Append(",");
|
|
|
|
|
sqlsb_B.Append(parkey).Append(",");
|
|
|
|
|
dbHelper.AddParameter(parkey, Guid.NewGuid().ToString().ToUpper());
|
|
|
|
|
}
|
|
|
|
|
else if ((base.DbOptionTypesIsModify(control.BaseControl)))
|
|
|
|
|
{
|
|
|
|
|
iPara++;
|
|
|
|
|
string parkey = "@" + control.DataField + "_Para" + iPara.ToString();
|
|
|
|
|
if (dbHelper.DbSession.ProviderFactory.GetType().FullName.Contains("OracleClientFactory"))
|
|
|
|
|
{
|
|
|
|
|
parkey = ":" + control.DataField + "_Para" + iPara.ToString();
|
|
|
|
|
}
|
|
|
|
|
sqlsb_A.Append(control.DataField).Append(",");
|
|
|
|
|
sqlsb_B.Append(parkey).Append(",");
|
|
|
|
|
dbHelper.AddParameter(parkey, control.BaseControl.MCValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
sqlsb_A.Remove(sqlsb_A.Length - 1, 1);
|
|
|
|
|
sqlsb_B.Remove(sqlsb_B.Length - 1, 1).Append(")");
|
|
|
|
|
if (iPara == 0)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
dbHelper.CommandText = sqlsb_A.ToString() + sqlsb_B.ToString();
|
|
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
|
|
}
|
|
|
|
|
string msg3 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_Default_SynchroData_Insert_msg3")); //信息添加成功!
|
|
|
|
|
ShowMsg(msg3);
|
|
|
|
|
|
|
|
|
|
#region 记录操作日志
|
|
|
|
|
|
|
|
|
|
base.DBLog(msg3);
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|