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

方法一:orm

    也是广为人知的一种:排序

    YourDataTable.Columns.Remove("列名");string

    可是这种状况只适合于去掉不多列的状况。for循环

    若是有不少列我却只要一两列呢,那就得用方法二了。form

方法二:效率

   DataTable dat = YourDataTable.DefaultView.ToTable(false, new string[] { "你要的列名", "你要的列名" });循环

 

补加dataTable操做相关内容:方法

对DataTable 的一些操做数据

在dataTable中最容易想到的是用for循环来操做,但事实不到万不得已经是不会用form循环的,由于效率通常不高。filter

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);

相关文章
相关标签/搜索