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

📄 frmmain.cs

📁 可将ACCESS数据库导入到Oracle数据库
💻 CS
📖 第 1 页 / 共 3 页
字号:
		/// </summary>
		/// <param name="oleT"></param>
		/// <param name="strTN"></param>
		/// <returns>返回一个哈希表,键是字段名,值是字段类型</returns>
		private System.Collections.Hashtable GetFieldListAndType(OleDbConnection oleT,string strTN)
		{
			ArrayList alField=this.GetFieldListbyTN(oleT,strTN);
			ArrayList alFieldType=this.GetFieldListTypesbyTN(oleT,strTN);
			System.Collections.Hashtable htFielListAndType=new Hashtable();
			for(int i=0;i<alField.Count;i++)
			{
				htFielListAndType.Add(alField[i].ToString(),alFieldType[i].ToString());
			}
			return htFielListAndType;
		}

		private void lbMBB_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			lvMBZD.Items.Clear();
			if(trans.TargetTable.Count<=0)
				trans.TargetTable.Add(lbMBB.Items[lbMBB.SelectedIndex].ToString());
			else
				trans.TargetTable[0]=lbMBB.Items[lbMBB.SelectedIndex].ToString();
			_alTargetField=GetFieldListbyTN(trans.TargetConn,trans.TargetTable[0].ToString());
			_alTargetFieldType=GetFieldListTypesbyTN(trans.TargetConn,trans.TargetTable[0].ToString());
			for(int i=0;i<_alTargetField.Count;i++)
			{
				ListViewItem temp=new ListViewItem();
				temp.Text=_alTargetField[i].ToString();
				temp.SubItems.Add(_alTargetFieldType[i].ToString());
				temp.SubItems.Add("");
				temp.SubItems.Add("");
				lvMBZD.Items.Add(temp);
			}
		}

		private void lvMBZD_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
		{
			if (e.Data.GetDataPresent(typeof(DragData))) 
			{
				DragData data = (DragData)e.Data.GetData(typeof(DragData));
				Point pt = lvMBZD.PointToClient( new Point(e.X, e.Y) )  ;
				ListViewItem selItem=lvMBZD.GetItemAt(pt.X,pt.Y);
				CFieldRelation cFieldRelation = new CFieldRelation();
				cFieldRelation.SourceTable = data.m_strTableName;
				cFieldRelation.SourceField = data.m_strFieldName;
				cFieldRelation.SourceType = data.m_strFieldType;
				cFieldRelation.TargetTable = lbMBB.Items[lbMBB.SelectedIndex].ToString();
				cFieldRelation.TargetField = selItem.SubItems[0].Text;
				cFieldRelation.TargetType = selItem.SubItems[1].Text;
				DYGXDesign a=new DYGXDesign(oleY,cFieldRelation);
				a.ShowDialog();
				cFieldRelation.TransType=a.FieldRelation.TransType;
				selItem.Tag = cFieldRelation;
				selItem.SubItems[2].Text=data.m_strTableName+"."+data.m_strFieldName;
				selItem.SubItems[3].Text=cFieldRelation.TransType;

			}
		}

		private void lvMBZD_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
		{
			e.Effect=e.AllowedEffect;
			//this.Cursor=Cursors.Cross;
			//if (e.Data.GetDataPresent  (  DataFormats.Text  ))
			//	e.Effect  =  DragDropEffects.Copy  ;
			//else
				//e.Effect  =  DragDropEffects.None  ;

		}
		private string[] GetZDZbyZDMTM(OleDbConnection oleConn,string strTN,string strZDM)
		{
			string[] strsReturn=null;
			if(oleConn.State==System.Data.ConnectionState.Closed)
				oleConn.Open();
			OleDbCommand dc=oleConn.CreateCommand();
			dc.CommandText="select count(*) from "+strTN;
			OleDbDataReader dr=dc.ExecuteReader();
			dr.Read();
			int rowCount=dr.GetInt32(0);
			dr.Close();
			dc.CommandText="select "+strZDM+ " from "+strTN;
			dr=dc.ExecuteReader();
			int i=0;
			strsReturn=new string[rowCount];
			while(dr.Read())
			{
				strsReturn[i]=dr.GetValue(0).ToString();
				i++;
			}
			dr.Close();
			dc.Dispose();
			return strsReturn;
		}

		private void frmMain_Load(object sender, System.EventArgs e)
		{
			ColumnHeader a=new ColumnHeader();
			a.Text="目标字段名";
			a.Width=180;
			ColumnHeader b=new ColumnHeader();
			b.Text="字段类型";
			b.Width=200;
			ColumnHeader c=new ColumnHeader();
			c.Text="源字段名";
            c.Width=180;
			ColumnHeader d=new ColumnHeader();
			d.Text="转换规则";
			d.Width=180;
			lvMBZD.Columns.Add(a);
			lvMBZD.Columns.Add(b);
			lvMBZD.Columns.Add(c);
			lvMBZD.Columns.Add(d);
		}
		private void miSaveLog_Click(object sender,System.EventArgs e)//“保存转换日志”菜单的响应方法 
		{ 
			if(rtbLog.Text!="")
				if(sfd.ShowDialog()==System.Windows.Forms.DialogResult.OK)
					rtbLog.SaveFile(sfd.FileName,RichTextBoxStreamType.TextTextOleObjs);
		} 
		private void miClearLog_Click(object sender,System.EventArgs e)//“清除转换日志”菜单的响应方法 
		{
			rtbLog.Clear();
		}
		/// <summary>
		/// "修改转换规则"菜单的响应方法
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void miModifyTransRule_Click(object sender,System.EventArgs e)
		{
			CFieldRelation relation=(CFieldRelation)lvMBZD.Items[lvMBZD.SelectedIndices[0]].Tag;
			DYGXDesign winDYGXD=new DYGXDesign(trans.SourceConn,relation);
			winDYGXD.ShowDialog();
			lvMBZD.Items[lvMBZD.SelectedIndices[0]].SubItems[3].Text=winDYGXD.FieldRelation.TransType;

		}
		private void miDelTransRule_Click(object sender,System.EventArgs e)
		{
			ListViewItem selItem=lvMBZD.Items[lvMBZD.SelectedIndices[0]];
			DelTransRuleOflvItem(selItem);
		}
		/// <summary>
		/// 删除列表项中的tag和第2和3个子列表项(一般是lvMBZD列表视图)。
		/// </summary>
		/// <param name="selitem">指定的列表项</param>
		private void DelTransRuleOflvItem(ListViewItem selitem)
		{
			if(selitem!=null)
			{
				CFieldRelation cfr=(CFieldRelation)selitem.Tag;
				selitem.Tag=null;
				selitem.SubItems[3].Text="";
				selitem.SubItems[2].Text="";
			}
		}
		private void menuItem2_Click(object sender, System.EventArgs e)
		{
			trans.FieldRelation.Clear();
			for( int i=0; i<lvMBZD.Items.Count; ++i )
			{
				if ( lvMBZD.Items[i].Tag!=null )
				{
					CFieldRelation relation = (CFieldRelation)lvMBZD.Items[i].Tag;
					trans.FieldRelation.Add(relation);
				}
			}
			System.Threading.Thread thrTrans =new System.Threading.Thread(new System.Threading.ThreadStart(trans.TransitionBegin));
			thrTrans.Start();
			while(thrTrans.Join(40))
			{
				//MessageBox.Show("数据转换完成");
			}

		}

		private string[] GetZDL(ListView lv,int ColumnIndex)
		{
			string[] strsZDL=new string[lv.Items.Count];
			for(int i=0;i<lv.Items.Count;i++)
			{
				strsZDL[i]=lv.Items[i].SubItems[ColumnIndex].Text;
			}
			return strsZDL;
		}

		protected override void DefWndProc ( ref System.Windows.Forms.Message m ) 
		{ 

			switch(m.Msg) 
			{
				case WM_SendLog:
					string a=System.Runtime.InteropServices.Marshal.PtrToStringAnsi(m.WParam);
					rtbLog.Text+=a;
					break;
				default:
					base.DefWndProc(ref m);
					break;
			}
		}

		private void menuItem5_Click(object sender, System.EventArgs e)
		{
			CUpdateTransition cUpdateTrans=new CUpdateTransition();
			cUpdateTrans.FieldRelation.Clear();
			for( int i=0; i<lvMBZD.Items.Count; ++i )
			{
				if ( lvMBZD.Items[i].Tag!=null )
				{
					CFieldRelation relation = (CFieldRelation)lvMBZD.Items[i].Tag;
					cUpdateTrans.FieldRelation.Add(relation);
				}
			}
			frmFieldAssociate winFieldAssociate=new frmFieldAssociate();
			winFieldAssociate.TargetFieldAndType=this.GetFieldListAndType(trans.TargetConn,trans.TargetTable[0].ToString());
			winFieldAssociate.SourceFieldAndType=this.GetFieldListAndType(trans.SourceConn,trans.SourceTable[0].ToString());
			winFieldAssociate.TargetTable=trans.TargetTable;
			winFieldAssociate.SourceTable=trans.SourceTable;
			winFieldAssociate.TargetFieldList=this._alTargetField;
			winFieldAssociate.SourceFieldList=this._alSourceField;
			winFieldAssociate.ShowDialog();
			cUpdateTrans.FieldAssociate=winFieldAssociate.FieldAssociate;
			cUpdateTrans.SourceConn=trans.SourceConn;
            cUpdateTrans.TargetConn=trans.TargetConn;
			cUpdateTrans.SourceTable=trans.SourceTable;
			cUpdateTrans.TargetTable=trans.TargetTable;
			System.Threading.Thread thrUpdateTrans=new System.Threading.Thread(new System.Threading.ThreadStart(cUpdateTrans.UpdateTransStart));
			thrUpdateTrans.Start();
		}

		private void panel3_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
		{
			lbSource.Left=panel3.Width/2-lbSource.Width/2;
		}

		private void label3_Click(object sender, System.EventArgs e)
		{
		
		}

		private void panel6_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
		{
			lbTarget.Left=panel6.Width/2-lbTarget.Width/2;
		}

		private void panel8_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
		{
			lbTransLog.Left=panel8.Width/2-lbTransLog.Width/2;
		}

		private void lvMBZD_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			if(lvMBZD.SelectedItems.Count>0)
			{
				if(e.Button==MouseButtons.Right)
					lvMBZD.ContextMenu=_ctmTransRule;
			}
		}

		private void rtbLog_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			if(rtbLog.Text!="")
			{
				if(e.Button==MouseButtons.Right)
					rtbLog.ContextMenu=_ctmTransLog;
			}
		}

		private void lvMBZD_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
		{
			if(lvMBZD.Sorting==SortOrder.None)
			{
				lvMBZD.Sorting=SortOrder.Ascending;
			}
			else if(lvMBZD.Sorting==SortOrder.Ascending)
			{
				lvMBZD.Sorting=SortOrder.Descending;
			}
			else
			{
				lvMBZD.Sorting=SortOrder.Ascending;
			}
		}


	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -