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