C# 比较两个DataGridView之间的单元格

C# 比较两个DataGridView之间的单元格,c#,C#,你好 我想比较两个DataGridView之间的单元格,并标记源DataGridView(下面的GridView1)中不同的相应单元格。目前,我只能比较行。我是否可以逐个单元格比较DataGridView单元格,并仅标记有差异的单元格 以下是一个例子: 表1: 368 表2: 26 5 private void button5_Click_1(object sender, EventArgs e) { DataTable src1 = dataGridView1.DataSource a

你好

我想比较两个DataGridView之间的单元格,并标记源DataGridView(下面的GridView1)中不同的相应单元格。目前,我只能比较行。我是否可以逐个单元格比较DataGridView单元格,并仅标记有差异的单元格

以下是一个例子: 表1: 368

表2: 26 5

private void button5_Click_1(object sender, EventArgs e)
{
    DataTable src1 = dataGridView1.DataSource as DataTable;
    DataTable src2 = dataGridView2.DataSource as DataTable;
    int index1 = 0;

    foreach (DataRow row1 in src1.Rows)
    {
        foreach (DataRow row2 in src2.Rows)
        {
            int index2 = 0;
            bool duplicateRow = true;
            for (int cellIndex = 0; cellIndex < row1.ItemArray.Count(); cellIndex++)
            {
                if (!row1.ItemArray[cellIndex].Equals(row2.ItemArray[cellIndex].ToString()))
                {
                    duplicateRow = true;
                    break;
                }
            }

            if (duplicateRow)
            {
                dataGridView1.Rows[index1].DefaultCellStyle.ForeColor = Color.Red; 
            }

            index2++;
        }
        index1++;
    }
}
private void按钮5\u单击1(对象发送者,事件参数e)
{
DataTable src1=dataGridView1.DataSource作为DataTable;
DataTable src2=dataGridView2.DataSource作为DataTable;
int index1=0;
foreach(src1.Rows中的DataRow1)
{
foreach(src2.Rows中的数据行第2行)
{
int index2=0;
bool duplicateRow=true;
对于(int-cellIndex=0;cellIndex
多谢各位

DataTable src1 = dataGridView1.DataSource as DataTable;
DataTable src2 = dataGridView2.DataSource as DataTable;
如果两个gridview的列数和行数相同:

for(int i=0; i<src1.Rows.Count; i++)
{
    var row1 = src1.Rows[i].ItemArray;
    var row2 = src2.Rows[i].ItemArray;

    for(int j = 0; j < row1.Length; j++)
    {
        if (!row1[j].ToString().Equals(row2[j].ToString()))
        {
            dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.Red; 
            dataGridView2.Rows[i].Cells[j].Style.BackColor = Color.Red; 
        }
    }
}

for(int i=0;ii如果我理解正确,您希望标记gridview1中gridview2中不存在的所有单元格。对吗?