欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现从多列的DataTable里取需要的几列

程序员文章站 2024-01-24 13:38:46
本文实例讲述了c#实现从多列的datatable里取需要的几列的方法。分享给大家供大家参考,具体如下: 方法一: 也是广为人知的一种: yourdatatab...

本文实例讲述了c#实现从多列的datatable里取需要的几列的方法。分享给大家供大家参考,具体如下:

方法一:

也是广为人知的一种:

yourdatatable.columns.remove("列名");

但是这种情况只适合于去掉很少列的情况。

如果有很多列我却只要一两列呢,那就得用方法二了。

方法二:

复制代码 代码如下:
datatable dat = yourdatatable.defaultview.totable(false, new string[] { "你要的列名", "你要的列名" });

补加datatable操作相关内容:

对datatable 的一些操作

在datatable中最容易想到的是用for循环来操作,但事实不到万不得已是不会用form循环的,因为效率一般不高。

1)  取行

取行一般用rowfilter

datatable datsource;//数据源表
//过滤表
dataview davtemp = new dataview(datsource, "过滤条件", "排序字段", dataviewrowstate.各种 状态);
//把过滤后的表赋给新表
datatable datnew = davtemp.totable();

2)取表的某列或多列

datatable datsource;//数据源表
datatable datnew= datsource.defaultview.totable(false, new string[] { "列名", "列名" .....});

3)复制某行的值[前提是表结构或列数相同]

datatable datsource;
datatable datnew;
datsource.rows[i].itemarray= datnew. rows[i].itemarray;

4)表列数相同,但是却列名不同,想复制值怎么办?

换个思维方式,既然列数相同,只是列名不同,为什么不改变列名呢?

如下:

datatable datsource;
datatable datnew;
datnew= datsource.copy();
datnew.columns["firstcolumn"].columnname = "yourcolumnname";

5)调整列的位置setordinal();

datatable dat = new datatable();
//添加三列
dat.columns.add("col1");
dat.columns.add("col2");
dat.columns.add("col3");
//添加一行数据
dat.rows.add(1,2,3);
//把第三列放到第一的位置
dat.columns["col3"].setordinal(0);

希望本文所述对大家c#程序设计有所帮助。