📄 frmmain.cs
字号:
// frmMain
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(920, 446);
this.Controls.Add(this.button2);
this.Controls.Add(this.button4);
this.Controls.Add(this.lblKtUsingTime);
this.Controls.Add(this.lblKtStartTime);
this.Controls.Add(this.lblKtNowTime);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.button1);
this.Controls.Add(this.label1);
this.Controls.Add(this.rtxtKt);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "frmMain";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "商用型号经理海推销售数据导数";
this.Load += new System.EventHandler(this.frmMain_Load);
((System.ComponentModel.ISupportInitialize)(this.XhUsingtimer)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Nowtimer)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.HwUsingtimer)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private void button4_Click(object sender, System.EventArgs e)
{
System.Windows.Forms.Application.Exit();
}
private void frmMain_Load(object sender, System.EventArgs e)
{
rtxtKt.Text = "正在检测服务器及数据库...";
}
private void LookServerHw()
{
try
{
sqlDb = new DbConnection();
sqlDb.ConnectionString = sqlStr;
string strSql = "select count(*) from SyXh_HwtSale";
sqlDb.OpenConnection();
DataSet dataSet = new DataSet();
sqlDb.OpenAdapter(strSql);
sqlDb.DbAdapter.Fill(dataSet);
sqlDb.CloseConnection();
if(Convert.ToInt64(dataSet.Tables[0].Rows[0][0]) >= 0)
{
rtxtKt.Text = "服务器及数据库准备就绪...";
button1.Enabled = true;
button2.Enabled = true;
}
}
catch(Exception e)
{
rtxtKt.Text = "连接服务器及数据库失败你将不能导数!";
MessageBox.Show(e.Message.ToString());
button1.Enabled = false;
button2.Enabled = false;
}
}
private DateTime starttime;
private void button1_Click(object sender, System.EventArgs e)
{
lblKtStartTime.Text = DateTime.Now.ToString();
starttime = DateTime.Now;
XhUsingtimer.Enabled = true;
XhUsingtimer.Start();
button1.Enabled = false;
button2.Enabled = false;
Thread Sythreads = new Thread(new ThreadStart(SyCleartxtAddMsg));
Sythreads.Start();
}
private bool HwtToSyServer()
{
try
{
//读取Oracle数据库中的数据
DbOLEConnection oraDb =new DbOLEConnection();
oraDb.ConnectionString = oraStr;
string MsSqlStr = "select order_num, contract_num, prepare_num, prod_type_name, market_name, country_name, product_manager, customer_name, prod_code, customer_code, affirm_num, prod_code_make, fob_price, prod_quantity, material_cost, manu_factory, cust_finish_date, nego_plan_date, nego_finish_date, commission, reback_money, ad_money, other_money, ad_brand, ad_tend, service_cost, mygs_sales_cost, chanpinzerenxian, gangza, shangjian, baoguan, xinyongxian, yinhanglixi, yinhangfeiyong, hwtservice from hrois_bo.if_bac_order";
oraDb.OpenConnection();
DataSet dataSet = new DataSet();
oraDb.OpenAdapter(MsSqlStr);
oraDb.DbAdapter.Fill(dataSet);
oraDb.CloseConnection();
if(dataSet.Tables[0].Rows.Count == 0)
{
MessageBox.Show("读取海推Oracle数据时发现数据库表中的行数为0,请稍后在试!");
return false;
}
//如果海外系统有数将SyXh_HwtSale表以前的数据清空
sqlDb = new DbConnection();
sqlDb.ConnectionString = sqlStr;
sqlDb.OpenConnection();
sqlDb.OpenCommand("TRUNCATE TABLE SyXh_HwtSale");
sqlDb.ExecuteNonQuery();
sqlDb.CloseConnection();
//读取SyXh_HwtSale表的数据
SqlConnection conn2;
string strSql = "select ORDER_NUM , CONTRACT_NUM , PREPARE_NUM , PROD_TYPE_NAME , MARKET_NAME , COUNTRY_NAME , PRODUCT_MANAGER , CUSTOMER_NAME , PROD_CODE , CUSTOMER_CODE , AFFIRM_NUM , PROD_CODE_MAKE , FOB_PRICE , PROD_QUANTITY , MATERIAL_COST , MANU_FACTORY , CUST_FINISH_DATE , NEGO_PLAN_DATE , NEGO_FINISH_DATE , COMMISSION , REBACK_MONEY , AD_MONEY , OTHER_MONEY , AD_BRAND , AD_TEND , SERVICE_COST , MYGS_SALES_COST , CHANPINZERENXIAN , GANGZA , SHANGJIAN , BAOGUAN , XINYONGXIAN , YINHANGLIXI , YINHANGFEIYONG , HWTSERVICE from SyXh_HwtSale";
conn2 = new SqlConnection(sqlStr);
conn2.Open();
SqlDataAdapter adapter2 = new SqlDataAdapter();
adapter2.SelectCommand = new SqlCommand(strSql, conn2);
SqlCommandBuilder mycb = new SqlCommandBuilder(adapter2);
adapter2.Fill(dataSet,"xh");
foreach(DataRow dr in dataSet.Tables[0].Rows)
{
dataSet.Tables["xh"].Rows.Add(dr.ItemArray);
}
adapter2.Update(dataSet,"xh");
conn2.Close();
//导数完毕后更新事业部编码人民币汇率
sqlDb = new DbConnection();
sqlDb.ConnectionString = sqlStr;
sqlDb.OpenConnection();
sqlDb.OpenCommand("SyXh_HwtSaleTurn");
sqlDb.ExecuteNonQuery();
sqlDb.CloseConnection();
return true;
}
catch(Exception e)
{
XhUsingtimer.Enabled = false;
XhUsingtimer.Stop();
rtxtKt.Text = "导数失败!";
button1.Enabled = true;
button2.Enabled = true;
MessageBox.Show(e.Message.ToString());
return false;
}
}
private void SyCleartxtAddMsg()
{
rtxtKt.Text += "\n正在从海推Oracle数据库中导数...";
if(HwtToSyServer())
{
sqlDb = new DbConnection();
sqlDb.ConnectionString = sqlStr;
string strSql = "select count(*) from SyXh_HwtSale";
sqlDb.OpenConnection();
DataSet dataSet = new DataSet();
sqlDb.OpenAdapter(strSql);
sqlDb.DbAdapter.Fill(dataSet);
sqlDb.CloseConnection();
System.TimeSpan ts = DateTime.Now - Convert.ToDateTime(lblKtStartTime.Text);
if(Convert.ToInt64(dataSet.Tables[0].Rows[0][0])>0)
{
rtxtKt.Text += "\n从海推Oracle数据库导入数据库导数成功!\n本步用时:"+ lblKtUsingTime.Text +"秒。\n 共将:"+ dataSet.Tables[0].Rows[0][0].ToString() +"条数据从海推数据库中导入。";
XhUsingtimer.Enabled = false;
XhUsingtimer.Stop();
MessageBox.Show("导数完成!");
button1.Enabled = true;
button2.Enabled = true;
}
else if(ts.Hours == 1 && ts.Seconds >1)
{
MessageBox.Show("导数已经超时请稍后再试!","浩晟科技",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
button1.Enabled = true;
button2.Enabled = true;
}
else
{
rtxtKt.Text = "第1步导数失败,正在尝试重新开始导数...";
button1.Enabled = false;
button2.Enabled = false;
Thread Ktthreads = new Thread(new ThreadStart(SyCleartxtAddMsg));
Ktthreads.Start();
}
}
else
{
XhUsingtimer.Enabled = false;
XhUsingtimer.Stop();
rtxtKt.Text += "读取海推Oracle数据时发现数据库表中的行数为0,请稍后在试!";
button1.Enabled = true;
button2.Enabled = true;
}
}
private void XhUsingtimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
lblKtUsingTime.Text = Convert.ToString(DateTime.Now - starttime);
}
private void Nowtimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
lblKtNowTime.Text=DateTime.Now.ToString();
}
private void button2_Click(object sender, System.EventArgs e)
{
rtxtKt.Clear();
}
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
LookServerHw();
timer1.Enabled = false;
timer1.Stop();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -