Windows Form File /DBUtil/OverwriteDataForm.cs (C#)
using System;  
using System.Collections;  
using System.ComponentModel;  
using System.Drawing;  
using System.Data;  
using System.Windows.Forms;  
  
  
namespace YariSoft.DBUtil  
{  
    public class OverwriteDataForm : YariSoft.DBUtil.OverwriteBaseForm  
    {  
        #region Local variables  
        private System.Windows.Forms.DataGridTableStyle dataGridTableStyle1;  
        private YariSoft.Windows.Conrols.YDataGridColorTextBoxColumn sourceDataGridTextBoxColumn;  
        private YariSoft.Windows.Conrols.YDataGridColorTextBoxColumn destinationDataGridTextBoxColumn;  
        private YariSoft.Windows.Conrols.YDataGridColorTextBoxColumn nameDataGridTextBoxColumn;  
        private System.ComponentModel.IContainer components = null;  
        #endregion  
  
        #region Constructor/Destructor  
        public OverwriteDataForm()  
        {  
            InitializeComponent();  
            this.sourceDataGridTextBoxColumn.OnPaint        += new YariSoft.Windows.Conrols.OnDataGridColumnPainEventHandler ( this.OnNeedCellColor );  
            this.destinationDataGridTextBoxColumn.OnPaint    += new YariSoft.Windows.Conrols.OnDataGridColumnPainEventHandler ( this.OnNeedCellColor );  
            this.nameDataGridTextBoxColumn.OnPaint            += new YariSoft.Windows.Conrols.OnDataGridColumnPainEventHandler ( this.OnNeedCellColor );  
        }  
  
        protected override void Dispose( bool disposing )  
        {  
            if( disposing )  
            {  
                if (components != null)  
                {  
                    components.Dispose();  
                }  
            }  
            base.Dispose( disposing );  
        }  
        #endregion  
  
        #region Designer generated code  
        /// <summary>  
        /// Required method for Designer support - do not modify  
        /// the contents of this method with the code editor.  
        /// </summary>  
        private void InitializeComponent()  
        {  
            this.dataGridTableStyle1 = new System.Windows.Forms.DataGridTableStyle();  
            this.nameDataGridTextBoxColumn = new YariSoft.Windows.Conrols.YDataGridColorTextBoxColumn();  
            this.sourceDataGridTextBoxColumn = new YariSoft.Windows.Conrols.YDataGridColorTextBoxColumn();  
            this.destinationDataGridTextBoxColumn = new YariSoft.Windows.Conrols.YDataGridColorTextBoxColumn();  
            ((System.ComponentModel.ISupportInitialize)(this.dataGrid)).BeginInit();  
            this.SuspendLayout();  
            //    
            // overwriteButtonAll  
            //    
            this.overwriteButtonAll.Visible = true;  
            //    
            // overwriteButton  
            //    
            this.overwriteButton.Visible = true;  
            //    
            // dataGrid  
            //    
            this.dataGrid.AccessibleName = "DataGrid";  
            this.dataGrid.AccessibleRole = System.Windows.Forms.AccessibleRole.Table;  
            this.dataGrid.Size = new System.Drawing.Size(442, 218);  
            this.dataGrid.TableStyles.AddRange(new System.Windows.Forms.DataGridTableStyle[] {  
                                                                                                 this.dataGridTableStyle1});  
            this.dataGrid.Visible = true;  
            //    
            // infoLabel  
            //    
            this.infoLabel.Visible = true;  
            //    
            // infoLabel2  
            //    
            this.infoLabel2.Visible = true;  
            //    
            // dataGridTableStyle1  
            //    
            this.dataGridTableStyle1.DataGrid = this.dataGrid;  
            this.dataGridTableStyle1.GridColumnStyles.AddRange(new System.Windows.Forms.DataGridColumnStyle[] {  
                                                                                                                  this.nameDataGridTextBoxColumn,  
                                                                                                                  this.sourceDataGridTextBoxColumn,  
                                                                                                                  this.destinationDataGridTextBoxColumn});  
            this.dataGridTableStyle1.HeaderForeColor = System.Drawing.SystemColors.ControlText;  
            this.dataGridTableStyle1.MappingName = "Table";  
            this.dataGridTableStyle1.RowHeadersVisible = false;  
            //    
            // nameDataGridTextBoxColumn  
            //    
            this.nameDataGridTextBoxColumn.Format = "";  
            this.nameDataGridTextBoxColumn.FormatInfo = null;  
            this.nameDataGridTextBoxColumn.HeaderText = "Name";  
            this.nameDataGridTextBoxColumn.MappingName = "Name";  
            this.nameDataGridTextBoxColumn.Width = 75;  
            //    
            // sourceDataGridTextBoxColumn  
            //    
            this.sourceDataGridTextBoxColumn.Format = "";  
            this.sourceDataGridTextBoxColumn.FormatInfo = null;  
            this.sourceDataGridTextBoxColumn.HeaderText = "Source";  
            this.sourceDataGridTextBoxColumn.MappingName = "Source";  
            this.sourceDataGridTextBoxColumn.Width = 209;  
            //    
            // destinationDataGridTextBoxColumn  
            //    
            this.destinationDataGridTextBoxColumn.Format = "";  
            this.destinationDataGridTextBoxColumn.FormatInfo = null;  
            this.destinationDataGridTextBoxColumn.HeaderText = "Destination";  
            this.destinationDataGridTextBoxColumn.MappingName = "Destination";  
            this.destinationDataGridTextBoxColumn.Width = 209;  
            //    
            // OverwriteDataForm  
            //    
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);  
            this.ClientSize = new System.Drawing.Size(456, 303);  
            this.Controls.AddRange(new System.Windows.Forms.Control[] {  
                                                                          this.infoLabel2,  
                                                                          this.infoLabel,  
                                                                          this.dataGrid});  
            this.Name = "OverwriteDataForm";  
            ((System.ComponentModel.ISupportInitialize)(this.dataGrid)).EndInit();  
            this.ResumeLayout(false);  
  
        }  
        #endregion  
  
        #region Public functions  
        public YariSoft.DBUtil.RowOperation ShowDialog( DataRow Source, DataRow Destination )  
        {  
              
            DataTable table = new DataTable("Table");  
            DataColumn sourceCol = new DataColumn("Source",System.Type.GetType("System.String"));  
            DataColumn destCol = new DataColumn("Destination",System.Type.GetType("System.String") );  
            DataColumn nameCol = new DataColumn("Name",System.Type.GetType("System.String"));  
            table.Columns.Add( sourceCol );  
            table.Columns.Add( destCol );  
            table.Columns.Add( nameCol );  
  
            int count = Source.Table.Columns.Count;  
            if( Destination.Table.Columns.Count > count ){  
                count = Destination.Table.Columns.Count;  
            }  
  
            for( int i = 0; i < count; i++ ){  
                DataRow row = table.NewRow();  
                if( i < Source.Table.Columns.Count ){  
                    row[sourceCol] = Source[Source.Table.Columns[i]];  
                    row[nameCol] = Source.Table.Columns[i].ColumnName;  
                }  
  
                if( i < Destination.Table.Columns.Count ){  
                    row[destCol] = Destination[Destination.Table.Columns[i]];  
                }  
                  
                table.Rows.Add( row );  
            }  
  
            this.dataGrid.DataSource = table.DefaultView;  
            ((DataView)this.dataGrid.DataSource).AllowNew = false;  
  
            this.ShowDialog();  
  
            return this.result;  
        }  
        #endregion  
  
        #region Private functions  
        private void OnNeedCellColor(    ref System.Drawing.Graphics g,  
                                        ref System.Drawing.Rectangle bounds,  
                                        ref System.Windows.Forms.CurrencyManager source,  
                                        ref int rowNum,  
                                        ref System.Drawing.Brush backBrush,  
                                        ref System.Drawing.Brush foreBrush,  
                                        ref bool alignToRight)  
        {  
            DataView view = ( DataView )this.dataGrid.DataSource ;  
            if( view[rowNum][1].ToString() != view[rowNum][0].ToString() ){  
                backBrush = new SolidBrush(Color.LightGoldenrodYellow);  
            }  
        }  
        #endregion  
    }  
}