簡體   English   中英

在C#中更新DataRow有問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM