如何将一个DataTable分成两个单独的列
本文关键字:两个 单独 一个 DataTable | 更新日期: 2023-09-27 18:01:36
我有一个数据表,它有很多列,只有一行:
...
DataSet myDataSet = new DataSet();
da.Fill(myDataSet);
myDataTable = new DataTable();
myDataTable = myDataSet.Tables[0];
...
我如何分割数据集/数据表有相同数量的列(如果它是一个奇数,分割列,使第一个DataTable
有额外的列)。
场景# 1:
主DataTable
:
col1 col2 col3 col4 col5 col6 col7 col8
9 0 9 5 7 4 9 3
DataTable1
:
col1 col3 col3 col4
9 0 9 5
DataTable2
:
col5 col6 col7 col8
7 4 9 3
场景# 2:
主DataTable
:
col1 col2 col3 col4 col5 col6 col7
9 0 9 5 7 4 9
DataTable1
:
col1 col3 col3 col4
9 0 9 5
DataTable2
:
col5 col6 col7
7 4 9
您可以复制整个数据表,然后删除不需要的列。
对于第一个示例,下面的代码将返回datatable1中的前四列和datatable 2中的其余列。
你可以根据你的列数修改你的代码
DataTable dataTable1;
dataTable1 = myDataTable.Copy();
dataTable1.Columns.RemoveAt(4);
dataTable1.Columns.RemoveAt(5);
dataTable1.Columns.RemoveAt(6);
dataTable1.Columns.RemoveAt(7);
DataTable dataTable2;
dataTable2 = myDataTable.Copy();
dataTable2.Columns.RemoveAt(0);
dataTable2.Columns.RemoveAt(1);
dataTable2.Columns.RemoveAt(2);
dataTable2.Columns.RemoveAt(3);
您也可以使用DataView.ToTable(String, Boolean, String[])
的重载版本来实现这一点,传递所需的列名,如下所示
DataView view1 = new DataView(myDataSet.Tables[0]);
DataTable table1 = view1.ToTable("Table1", true, "col1", "col3", "col4", "col5", "col6");
DataView view2 = new DataView(myDataSet.Tables[0]);
DataTable table2 = view2.ToTable("Table2", true, "col2", "col7", "col8");