С# как изменить данные в 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 и ничего: (
Ответы
Ответ 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;
раньше.