更新新数据行中的值也会影响数据表的来源?



这是我在这里的第一个问题,
我已经搜索了,但我无法得到答案,
我会感谢任何帮助。

假设我有一个名为 dtTest的数据

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

当我从dtTest创建新的数据并更新其值

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

我认为我唯一更改的是新对象drTest中的值,
它是脱离dtTest的独立性,
但是dtTest实际上也受到了影响。

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

为什么此操作影响原始数据?

这不是创建新行,而只是表中的第一行:

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

drTest是您的dtTest表的rowObject。因此,对drtest的任何更改都会影响您的数据表dtTest

如果您想要一排:

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

最新更新