怎么样从多列的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);

浙公网安备 33010602011771号