本文實例講述了C#實現從多列的DataTable裡取需要的幾列的方法。分享給大家供大家參考,具體如下:
方法一:
也是廣為人知的一種:
? 1YourDataTable.Columns.Remove(
"列名"
);
但是這種情況只適合於去掉很少列的情況。
如果有很多列我卻只要一兩列呢,那就得用方法二了。
方法二:
復制代碼 代碼如下: DataTable dat = YourDataTable.DefaultVIEw.ToTable(false, new string[] { "你要的列名", "你要的列名" });
補加dataTable操作相關內容:
對DataTable 的一些操作
在dataTable中最容易想到的是用for循環來操作,但事實不到萬不得已是不會用form循環的,因為效率一般不高。
1) 取行
取行一般用rowfilter
? 1 2 3 4 5DataTable datSource;
//數據源表
//過濾表
DataVIEw davTemp =
new
DataVIEw(datSource,
"過濾條件"
,
"排序字段"
, DataVIEwRowState.各種 狀態);
//把過濾後的表賦給新表
DataTable datNew = davTemp.ToTable();
2)取表的某列或多列
? 1 2DataTable datSource;
//數據源表
DataTable datNew= datSource.DefaultVIEw.ToTable(
false
,
new
string
[] {
"列名"
,
"列名"
.....});
3)復制某行的值[前提是表結構或列數相同]
? 1 2 3DataTable datSource;
DataTable datNew;
datSource.Rows[i].ItemArray= datNew. Rows[i].ItemArray;
4)表列數相同,但是卻列名不同,想復制值怎麼辦?
換個思維方式,既然列數相同,只是列名不同,為什麼不改變列名呢?
如下:
? 1 2 3 4DataTable datSource;
DataTable datNew;
datNew= datSource.Copy();
datNew.Columns[
"FirstColumn"
].ColumnName =
"YourColumnName"
;
5)調整列的位置SetOrdinal();
? 1 2 3 4 5 6 7 8 9DataTable 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#程序設計有所幫助。