【发布时间】:2013-07-06 19:14:44
【问题描述】:
我需要在两个数据表之间实现列移动功能。假设我在 DataTable 1 中有列 {A,B,C},在 DataTable 2 中有列 {A}。
如果我想将列 {B,C} 移动到 DataTable 2,我该怎么做?两个表中的数据应该相似。
如果 DataTable 不是一个正确的选择,那么请帮助我了解如何实现这一点..
这可以用 List 完成吗? - 嵌套列表?尝试了下面的代码,但认为合并不是正确的选择。
private void move(DataTable source, DataTable dest, string colname)
{
var result = source.AsEnumerable().Select(row => row.Field<string>(colname));
dest.Columns.Add(colname);
DataTable dt = source.DefaultView.ToTable(false, colname);
dest.Merge(dt);
}
我是初学者,所以请建议是否有其他方法可以根据用户选择移动列。
【问题讨论】:
-
这看起来像复制列和复制数据的不那么复杂复杂的工作。你试过什么?你在哪里卡住了?
-
我尝试了下面的 void ShiftColumn(DataTable source, DataTable dest, string colname) { var result = source.AsEnumerable().Select(row => row.Field
(colname)); dest.Columns.Add(colname); DataTable dt = source.DefaultView.ToTable(false, colname); pd.合并(dt); } } -
我尝试获取用户选择的列名,并使用 linq 查询获取与该列相关的数据,然后与目标表合并。猜测合并在这里不是正确的选择。 void ShiftColumn(DataTable source, DataTable dest, string colname) { var result = source.AsEnumerable().Select(row => row.Field
(colname)); dest.Columns.Add(colname); DataTable dt = source.DefaultView.ToTable(false, colname); dest.Merge(dt); } } 我是初学者,所以请提出其他建议。 -
请编辑您的原始问题以添加更多信息。 cmets中的代码很难阅读
-
修改了问题,谢谢。
标签: c# wpf datagridview datatable dynamic-columns