gpt4 book ai didi

c# - 将 DataTable 分配给 DataTable

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:49 24 4
gpt4 key购买 nike

我想将一个 DataTable (dataTable1) 分配给另一个 DataTable (dataTable2) 并删除一些列在后者 DataTable 中。例如我有以下代码:

DataTable dataTable2 = dataTable1;
dataTable2.Columns.Remove("column1");
dataTable2.Columns.Remove("column2");

原来 DataTable(dataTable1dataTable2)都删除了列。我不明白为什么 dataTable1 也会删除 column1column2,而我只删除 dataTable2 中的列。

[已编辑 - 有答案]

应该使用 Clone()ImportRow() 而不是指针赋值。

DataTable dataTable2 = dataTable1.Clone()
for (int i = 0; i < dataTable1.Rows.Count; i++)
{
dataTable2.ImportRow(dataTable1.Rows[i]);
}

最佳答案

发生这种情况是因为 dataTable2 指向与 dataTable1 相同的表。为了解决这个问题,使用DataTable的Clone方法新建一个结构相同的DataTable:

        DataTable dataTable2  = dataTable1.Clone();  
dataTable2.Columns.Remove("column1");
dataTable2.Columns.Remove("column2");

关于c# - 将 DataTable 分配给 DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6641125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com