⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.cs

📁 一个导数程序,oracle导入到sql中。简单不知道能不能用
💻 CS
📖 第 1 页 / 共 2 页
字号:
			// 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 + -