如何在两个单独的列中拆分DataTable

时间:2015-07-07 14:21:39

标签: c# sql-server datatable

我有一个DataTable,它有很多列,只有一行:

...
DataSet myDataSet = new DataSet();
da.Fill(myDataSet);

myDataTable = new DataTable();
myDataTable = myDataSet.Tables[0];
...

如何将DataSet / DataTable拆分为具有相同数量的列(如果是奇数,则拆分列使第一个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

2 个答案:

答案 0 :(得分:2)

您可以复制整个数据表,然后删除您不想要的列。

因此,对于您的第一个示例,以下代码将返回datatable1中的前四列和数据表2中的剩余列。

您可以根据列数修改代码

karma.config.js

答案 1 :(得分:1)

你也可以使用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");