在C#中更新DataRow有问题

Chr*_*mex 3 c# datatable datarow

我有一个非常简单的C#DataTable问题,我似乎无法解决这个问题.它看起来如此紧张,但我必须遗漏一些东西.

我希望有人可以向我解释为什么我无法更新DataTable中的单元格值,如下所示:

码:

    DataTable t = new DataTable();
    t.Columns.Add("MyCol");
    t.Rows.Add("old value");
    t.Rows[0].ItemArray[0] = "new value";
    t.AcceptChanges();
    dataGridView1.DataSource = t;         //did not work. still reads "old value"
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!谢谢!

Jot*_*aBe 5

只需更改:

t.Rows[0].ItemArray[0] = "new value";
Run Code Online (Sandbox Code Playgroud)

t.Rows[0][0] = "new value";
Run Code Online (Sandbox Code Playgroud)

而已!

编辑(补充说明):

不跟踪对ItemArray元素的更改,因此数据表值中不会反映任何更改(原始问题中的代码)

但是,您可以使用ItemArray一次更改所有行,如下所示:

t.Rows[0].ItemArray = new object[] {"new value"};
Run Code Online (Sandbox Code Playgroud)

在这种情况下,跟踪更改,您将获得预期的结果.