Многократные критерии Vlookup C # - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть два вида данных: datagridView1, с полями A и B (ячейки [0], ячейки 1 ):

enter image description here

datagridView2 (Cells[0], Cells[1], Cells[2]):

enter image description here

Я хотел бы сравнить значение между двумя таблицами, и если: - the value in datagridView1.rows[i].Cells[0].value = datagridView2.rows[j].Cells[0].value AND the value in datagridView1.rows[i].Cells[1].value = datagridView2.rows[j].Cells[1].value THEN write in datagridView1.rows[i].Cells[2].value the value from the third column in datagridView2:

enter image description here

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Вот второй цикл, который я добавил, чтобы соответствовать любой строке, и он отлично работает:

        for (var i = 0; i < src1.Rows.Count; i++)

        {
            var r1 = src1.Rows[i];

            for (var j = 1; j < src2.Rows.Count; j++)
            {
                var r2 = src2.Rows[j];

                if (r1[0].Equals(r2[0]) && r1[1].Equals(r2[1]))
                {
                    r1[2] = r2[2];
                }
            }
        }
0 голосов
/ 03 сентября 2018

Полагаю, вы ищете что-то подобное. Это будет зависеть от того, как вы заполняете свои DataGridView s. Также нет обработки ошибок, которая должна быть реализована.

for (var i = 0; i < dataGridView1.Rows.Count; i++)
{
    var r1 = dataGridView1.Rows[i];
    var r2 = dataGridView2.Rows[i];

    if (r1.Cells[0].Value == r2.Cells[0] && r1.Cells[1].Value == r2.Cells[1])
        r1.Cells[2].Value = r2.Cells[2].Value;
}
...