比较数据网格视图两行的单元格,将不匹配的单元格高亮

时间:2018-06-21 19:39:06

标签: c# sql datagridview

这就是我所拥有的。从同一表的两个不同数据库中获取数据的查询。给每个row_number()和Location以及我需要评估的所有相关列的数据。所以我有两行,第一列的第一列是第一个列,第二列是Home,第二列第二列是远程列。然后比较所有列。根据要比较的表格,最多可能只有5个相关列,最多31个。 因此,我的C#代码填充了DGV,然后我开始遍历每个col 2,如果不相等,则将第1行与col 2的第2行进行比较,将每个单元格设为红色。 然后是下一个col col3第1行,Col3第2行一直向下到该行对的col列表中。 它在40行对和10 col上还不错,但是我有一些4800行对和30 col的实例。 没有人有一个更快的方法,然后逐行。我有关于接受我的slq查询并设置一些标志的想法??尽我的智慧。

1 个答案:

答案 0 :(得分:0)

这非常快。 注意:我不会排除row_number()列,也不进行NULL检查等。

 private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if ((e.RowIndex > 0) && (e.ColumnIndex > 0) && ((e.RowIndex % 2) == 0))
            {
                if (!dataGridView1.Rows[e.RowIndex - 1].Cells[e.ColumnIndex].Value.Equals(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value))
                {
                    e.Graphics.FillRectangle(Brushes.Red, e.CellBounds);
                    e.PaintContent(e.CellBounds);
                    e.Handled = true;
                }
            }
        }