Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较datagrid视图中两行的单元格,突出显示不匹配的单元格_C#_Sql_Datagridview - Fatal编程技术网

C# 比较datagrid视图中两行的单元格,突出显示不匹配的单元格

C# 比较datagrid视图中两行的单元格,突出显示不匹配的单元格,c#,sql,datagridview,C#,Sql,Datagridview,这就是我所拥有的。从同一表的两个不同数据库获取数据的查询。为每一行指定行号()和位置,以及我需要计算的所有相关列的数据。我有两行,第一列为1,第二列为Home,第二列为remote。然后比较所有要比较的列。根据所比较的表,可能只有5个相关列,最多31个。 所以我的C代码填充DGV,然后我开始检查每个列2,第1行比较列2,第2行如果不相等,使每个单元格变红。 然后下一列col3第1行,col3第2行,一直到行对的col列表。 40行对和10列并不是很糟糕,但我有一些4800行对和30列的实例。 有

这就是我所拥有的。从同一表的两个不同数据库获取数据的查询。为每一行指定行号()和位置,以及我需要计算的所有相关列的数据。我有两行,第一列为1,第二列为Home,第二列为remote。然后比较所有要比较的列。根据所比较的表,可能只有5个相关列,最多31个。 所以我的C代码填充DGV,然后我开始检查每个列2,第1行比较列2,第2行如果不相等,使每个单元格变红。 然后下一列col3第1行,col3第2行,一直到行对的col列表。 40行对和10列并不是很糟糕,但我有一些4800行对和30列的实例。 有没有人有一种比一排一排更快的方法。我考虑过接受我的slq查询并设置一些标志??我真是束手无策。

这个效果很快。 注意:我并没有排除row_number()列,也没有执行空检查等

 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;
                }
            }
        }