[英]Trouble with updating DataRow in C#
我有一個非常簡單的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"
任何幫助,將不勝感激! 謝謝!
只需更改:
t.Rows[0].ItemArray[0] = "new value";
至
t.Rows[0][0] = "new value";
而已!
編輯(補充說明):
不跟蹤對ItemArray元素的更改,因此數據表值中不會反映任何更改(原始問題中的代碼)
但是,您可以使用ItemArray一次更改所有行,如下所示:
t.Rows[0].ItemArray = new object[] {"new value"};
在這種情況下,跟蹤更改,您將獲得預期的結果。
回答你的問題
你應該這樣做
t.Rows[0].ItemArray = new object[] { "new value" };
根據MSDN,
您可以使用此屬性通過數組設置或獲取此行的值。 如果使用此屬性設置值,則數組必須具有與列集合相同的大小和順序。 在ItemArray中傳遞null表示沒有指定值。
你試過以下嗎?
...
dataGridView1.DataSource = null; // set it to null before it set to a new one.
dataGridView1.DataSource = t;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.