gpt4 book ai didi

c# - 根据两个数据表中的差异更改 datagridview 中的颜色?

转载 作者:太空狗 更新时间:2023-10-30 01:06:31 24 4
gpt4 key购买 nike

我有两个数据表,每个有 1 列:

dtTempCM
dtOldTempCM

在两个表中,唯一的列名是Column1

我还有 2 个数据 GridView ,每个都绑定(bind)到一个数据表:

dgvCurrentCM.DataSource = dtTempCM;
dgvOldCM.DataSource = dtOldTempCM;

如果它们不匹配,我如何比较每一行,并在一个(或两个)数据 GridView 中突出显示它?到目前为止,我有这个:

foreach (DataRow row1 in dtTempCM.Rows)
{
foreach (DataRow row2 in dtOldTempCM.Rows)
{
var array1 = row1.ItemArray;
var array2 = row2.ItemArray;

if (array1.SequenceEqual(array2))
{
//change row/cell color in dgvCurrentCM to red
//change row/cell color in dgvOldCM to red
}
}
}

有什么想法吗?谢谢!

编辑:我也试过这个,但是它改变了每个单元格的颜色,因为它将 dgvOldCM 中的每一行与 dgvCurrentCM 中的一行进行比较:

foreach (DataGridViewRow row1 in dgvCurrentCM.Rows)
{
foreach (DataGridViewRow row2 in dgvOldCM.Rows)
{
if (row1.Cells[0].Value != row2.Cells[0].Value)
{
row1.DefaultCellStyle.ForeColor = Color.Red;
row2.DefaultCellStyle.ForeColor = Color.Red;
}
}
}

最佳答案

我会在其中一个 gridview 上进行迭代,并像这样与另一个进行比较:

    for (int i = 0; i < dgvCurrentCM.RowCount; i++)
{
if (dgvCurrentCM.Rows[i].Cells[0].Value != null)
{
if ((int)dgvCurrentCM.Rows[i].Cells[0].Value != (int)dgvOldCM.Rows[i].Cells[0].Value)
{
dgvCurrentCM.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
dgvOldCM.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
}
}
}

关于c# - 根据两个数据表中的差异更改 datagridview 中的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15277891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com