Member 12349103 Ответов: 1

C# winform копирует из 1 столбца в другой столбец, если он соответствует cartier


У меня есть файл, который я импортирую в сетку, я хочу скопировать данные из столбца, если он соответствует Cartier, в другой столбец. пример: если столбец D имеет "Yeshh", скопируйте столбец A в столбец C. У меня есть часть его работы, последние 2 строки у меня есть проблемы, если он встречает другой cartier вернуть то, что находится в этой колонке.
приведенные ниже кодированные данные показывают это в ячейке DataGridViewTextBoxCell { ColumnIndex=13, RowIndex=0 } вместо результатов.



<pre>private void btn_Adjust_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow rows in dataGridView1.Rows)
            {
                for (int i = 0; i < dataGridView1.RowCount - 1; i++)
                {
                    if (dataGridView1.Rows[i].Cells[24].Value.ToString() == "Yesmix")
                    {
                        dataGridView1.Rows[i].Cells[17].Value = "48";
                    }

                    else
                    {
                        if (dataGridView1.Rows[i].Cells[24].Value.ToString() == "Yeshh")     // this not working
                        {
                           dataGridView1.Rows[i].Cells[17].Value = dataGridView1.Rows[i].Cells[13];      // this not working
                        }
                    }
                }
            }
        }


Что я уже пробовал:

DataGridViewTextBoxCell { ColumnIndex=13, RowIndex=0 }

Richard MacCutchan

Что значит "не работает" означает? Вы использовали свой отладчик, чтобы точно увидеть, что происходит в этот момент?

Member 12349103

Это возвращается в ячейку вместо данных из ячейки. DataGridViewTextBoxCell { ColumnIndex=13, RowIndex=0 }

Richard MacCutchan

Вы должны использовать свойство Value, а также (возможно) вызвать ToString() для этого. Точно так же, как вы сделали это в приведенных выше строках.

1 Ответов

Рейтинг:
8

Member 12349103

Я нашел решение.





<pre>private void btn_Adjust_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow rows in dataGridView1.Rows)
            {
                for (int i = 0; i < dataGridView1.RowCount ; i++)
                {
                    if (dataGridView1.Rows[i].Cells[24].Value.ToString() == "Yesmix")
                    {
                        dataGridView1.Rows[i].Cells[17].Value = "48";
                        dataGridView1.Rows[i].Cells[16].Value = "45";
                    }

                    else
                    {
                           if (dataGridView1.Rows[i].Cells[24].Value.ToString() == "Yeshh")
                        {
                            var value1 = dataGridView1.Rows[i].Cells[13].Value.ToString();
                            dataGridView1.Rows[i].Cells[17].Value = value1;

                            var value2 = dataGridView1.Rows[i].Cells[12].Value.ToString();
                            dataGridView1.Rows[i].Cells[16].Value = value2;

                            var value3 = dataGridView1.Rows[i].Cells[14].Value.ToString();
                            dataGridView1.Rows[i].Cells[18].Value = value3;


                        }