怎么样从多列的DataTable里取需要的几列

Posted 君莫笑·秋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么样从多列的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);

以上是关于怎么样从多列的DataTable里取需要的几列的主要内容,如果未能解决你的问题,请参考以下文章

从datatable里取某行某列的值

JQuery Datatable - 将单个单元格拆分为多列以提高可读性?

GridView可以根据需求动态设置显示多列中的某几列吗?

linq对datatable多列排序,该怎么处理

直接将DataTable存入oracle数据库中(转)

怎么修改datatable中某一列的值?