如何按列两个独立分开的DataTable [英] How to split a DataTable in two separate by columns

查看:98
本文介绍了如何按列两个独立分开的DataTable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆