У меня возникли проблемы, я использую DataTable для хранения своих данных в dataGridView. Данные занесены так:C# как изменить данные в DataTable?
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 представляет строку, я хочу, так что его Окей, но все же я не могу ничего менять, что случилось? Как обновить DataTable ??? Я ничего и прибегая к помощи :(
+1 - Я согласен, ваше предложение намного чище, чем примеры с использованием массива. Ваш пример позволяет четко идентифицировать поле по имени, а не подразумевать поле по положению в массиве. Я думаю, что использование массива дешево и лениво. Это, безусловно, повышает риск ошибок при дальнейшем обслуживании. Кроме того, если объект таблицы данных получен из структуры базы данных, и если эта структура базы данных, где нужно изменить, например, вставка столбца в середине определения таблицы, использование метода массива потенциально может привести к ошибке во время выполнения или хуже - необнаруженные поврежденные данные. – barrypicker