C#如何在DataTable中更改数据?

时间:2009-11-03 08:59:11

标签: c# 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 ???我没有谷歌搜索:(

3 个答案:

答案 0 :(得分:41)

尝试使用SetField方法:

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

这应该可以完成工作并且比使用Rows [i] [j]更“干净”。

答案 1 :(得分:16)

dt.Rows[1].ItemArray为您提供项目数组的副本。修改它时,您不会修改原始文件。

你可以这样做:

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

当您想要修改所有行值时,使用ItemArray属性。

例如:

dt.Rows[1].ItemArray = newItemArray;

答案 2 :(得分:7)

您之前应该设置属性dt.Columns["columnName"].ReadOnly = false;