Подтвердить что ты не робот

С# как изменить данные в DataTable?

У меня возникла проблема, я использую DataTable для хранения своих данных в dataGridView. Данные были введены следующим образом:

dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("par", typeof(string));
dt.Columns.Add("max", typeof(int));
dt.Columns.Add("now", typeof(int));

dt.Rows.Add(new object[] { id++,i + " " + j++, strarr[0], strarr[1] }); // ... etc etc

dataGridView1.DataSource = dt;

теперь я хочу сделать некоторые изменения, я использую код:

dt.Rows[1].ItemArray[3] = "VALUE";

Когда я отлаживаю, ItemArray представляет строку, которую я хочу, так что ее okey, но все же я не могу делать никаких изменений, что не так? Как обновить DataTable??? Я googling и ничего: (

4b9b3361

Ответ 1

Попробуйте метод SetField:

table.Rows[i].SetField(column, value);
table.Rows[i].SetField(columnIndex, value);
table.Rows[i].SetField(columnName, value);

Это должно выполнить задание и немного "более чистое", чем использование строк [i] [j].

Ответ 2

dt.Rows[1].ItemArray дает вам копию массива элементов. Когда вы его изменяете, вы не изменяете оригинал.

Вы можете просто сделать это:

dt.Rows[1][3] = "Value";

Свойство ItemArray используется, когда вы хотите изменить все значения строк.

например:

dt.Rows[1].ItemArray = newItemArray;

Ответ 3

Вы должны, вероятно, установить свойство dt.Columns["columnName"].ReadOnly = false; раньше.