方法一: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);