2017-03-08 48 views
1

這是我第一個問題在這裏,
我已經四處搜索,但我無法得到答案,
我會感謝任何幫助。在新的DataRow中更新值也會影響DataTable的來源?

假設我有一個數據表命名dtTest這樣

+----+------+ 
| id | name | 
+----+------+ 
| 1 | AA | 
| 2 | BB | 
+----+------+ 

當我從dtTest創建一個新的DataRow和更新它的值

DataRow drTest = dtTest.Rows[0]; 
drTest["name"] = "CC"; 

我想我唯一改變的事情就是價值在新對象drTest,
和它的獨立性從dtTest,
b實際上也受到了影響。

+----+------+ 
| id | name | 
+----+------+ 
| 1 | CC | 
| 2 | BB | 
+----+------+ 

爲什麼此操作會影響原始DataTable?

+0

因爲'DataRow'是引用類型 –

+0

我明白了,謝謝! –

回答

2

這不會創建一個新的行,但僅僅是在表中提及的第一行:

DataRow drTest = dtTest.Rows[0]; // Rows is a DataRowCollection which contains all table-rows 

如果你想有一個新行,你有以下選擇:

DataRow drTest1 = dtTest.NewRow();    // not yet added, you need: dtTest.Rows.Add(drTest1); 
DataRow drTest2 = dtTest.Rows.Add();   // already added without values 
DataRow drTest3 = dtTest.Rows.Add(1, "test"); // already added with values 
+0

謝謝你的回覆,我會記下它的。 –

0

drTest是你的dtTest表的一個rowobject。因此,要drtest任何更改都將影響你的數據表dtTest

如果你想有一個新行:

DataRow drTest1 = dtTest.NewRow(); 
dtTest["ID"] = 3; 
dtTest["name"] = "CC; 
+0

感謝您的回覆! –