DataTable方法總結

2022-09-12 12:18:09 字數 2348 閱讀 7369

//(1)初始化datatable

datatable dt1 = new datatable();

dt1.columns.add("id", typeof(int));

dt1.columns.add("names", typeof(string));

dt1.columns["id"].unique = true;

dt1.primarykey = new datacolumn ;

//賦值

datarow drr = dt1.newrow();

drr["id"] = 1;

drr["names"] = "張三";

dt1.rows.add(drr);

//(2)datatable之間操作

datatable dt2 = dt1.clone();//將dt1的資料轉殖到dt2 ,只複製表結構

datatable dt3 = dt1.copy();//將dt1的資料複製到dt3 複製資料和表結構

dt3.merge(dt1);//將dt1與dt3的資料合併,注:同表結構的複製則合併對應列,不同的會增加出不同的列

//將dt1的資料增加到dt2

//法一[直接複製]:

dt2 = dt1.copy();

//法二[匯入行的方式]:

dt2 = dt1.clone();

foreach (datarow item in dt1.rows)

//法三[每列迴圈新增]

foreach (datarow item in dt1.rows)

//(3)dataset與datatable的操作

新增到dataset中、

//①如果是新初始化的datatable,不屬於任何乙個dataset,則直接採用:

dataset ds = new dataset();

ds.tables.add(dt1);

// ② dt1已經屬於ds這個dataset了。 因為datatable是通過引用方式使用的,故乙個datatable不能新增到另外乙個dataset中,則採用以下方式:

dataset ds2 = new dataset();

ds2.tables.add(dt1.copy());//相當於複製了乙個新的datatable新增進去

//對於在乙個dataset中新增多個datatable,採用上面的②方式不可取,則採用以下方式將每個新增的datatable命名,否則新增進去會報已經存在datatable,便於新增了不會重複:

datatable dt4 = dt1.copy();

dt4.tablename = "dt4";

datatable dt5 = dt1.copy();

dt4.tablename = "dt5";

ds.tables.add(dt4);

ds.tables.add(dt5);

(4)datatable刪除

delete和remove

delete的使用是 datatable.rows[i].delete();

remove的使用是datatable.rows.remove(datatable.rows[i]);

這兩個的區別是,使用delete後,只是該行被標記為deleted,但是還存在,用rows.count來獲取行數時,還是刪除之前的行數.需要使用datatable.acceptchanges()方法來提交修改.

而remove方法則是直接刪除.

如果在for迴圈裡刪除行的話,最好是使用delete方法,不然會出現count變化的情況.迴圈完後再使用acceptchanges()方法提交修改,刪除掉標記為deleted的行 

(5)//去掉重複行

dat**iew dv =table.defaultview;

table = dv.totable(true, new string );

此時table 就只有name、code無重複的兩行了,如果還需要id值則

table = dv.totable(true, new string );//第乙個引數true 啟用去重複,類似distinct

(6)datatable過濾

datatable 到datatale的過濾

dat**iew dvv = dt.defaultview;

dvv.rowfilter = "boxno in (" + id + ")";

datatable dtt = dvv.totable(); //得到過濾後的datetable值

乙個dat**iew只支援乙個rowfilter,你只能使用 not ,and 來連線多個過濾條件

datatable 到daterow 的過濾

DataTable用法總結

在專案中經常用到datatable,如果datatable使用得當,不僅能使程式簡潔實用,而且能夠提高效能,達到事半功倍的效果,現對datatable的使用技巧進行一下總結。一 datatable簡介 1 建構函式 datatable 不帶引數初始化datatable 類的新例項。datatable...

DataTable使用技巧總結

在專案中經常用到datatable,如果datatable使用得當,不僅能使程式簡潔實用,而且能夠提高效能,達到事半功倍的效果,現對datatable的使用技巧進行一下總結。一 datatable簡介 1 建構函式 datatable 不帶引數初始化datatable 類的新例項。datatable...

動態建立DataTable總結

最簡單的 datatable dt new datatable dt.columns.add id dt.columns.add name datarow dr dt.newrow for int i 0 i 100 i 其他 方法一 datatable tbldatas newdatatable ...