如何按列两个独立分开的DataTable [英] How to split a DataTable in two separate by columns
问题描述
我有一个DataTable,其中有许多列和只有一行:
...
的DataSet myDataSet =新的DataSet();
da.Fill(myDataSet);
myDataTable =新的DataTable();
myDataTable = myDataSet.Tables [0];
...
我怎么能分裂的DataSet / DataTable中有列等量(如果是奇数,拆分列,以便第一数据表
有额外的列)。
方案#1:
主要数据表
:
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:
主要数据表
:
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);
I have a DataTable which has many columns and only one row:
...
DataSet myDataSet = new DataSet();
da.Fill(myDataSet);
myDataTable = new DataTable();
myDataTable = myDataSet.Tables[0];
...
How can I split the DataSet/DataTable to have equal amount of columns (if it is an odd number, split the columns so the first DataTable
has the extra column).
Scenario #1:
Main 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
Scenario #2:
Main 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
You can copy the whole data table and then remove the columns you don't want.
So for your first example, following code will return first four columns in datatable1 and remaining columns in datatable 2.
You can modify your code as per your number of columns
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);
这篇关于如何按列两个独立分开的DataTable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!