c# DataView.ToTable()方法 去除表的重復項問題
c# DataView.ToTable()方法 去除表的重復項
DataView.ToTable()方法及其重載:
1.DataView.ToTable()
根據(jù)現(xiàn)有DataView中的行,創(chuàng)建并返回一個新的DataTable。
2.DataView.ToTable(String)
根據(jù)現(xiàn)有DataView中的行,創(chuàng)建并返回一個新的DataTable。參數(shù)String為返回的DataTable的名稱,輸出的表與輸入表的列相通,不可自定義。
3.DataView.ToTable(Boolean,String[])
根據(jù)現(xiàn)有DataView中的行,創(chuàng)建并返回一個新的DataTable。參數(shù)Boolean如果為true,則說有列都具有不同值的行,為false時不去沖,且默認為false。
可自定義返回的列,數(shù)組String[]為顯示返回列的集合。
例子:
DataView dv = new DataView(table); table = dv.ToTable(true, "ID"); ? ? ? ? ? ? ?//去重,返回原表中的ID列 //table=dv.ToTable(true,"ID","name"); ? ?//返回ID 和 name兩列
4.DataView.ToTable(String,Boolean,String[])
根據(jù)現(xiàn)有DataView中的行,創(chuàng)建并返回一個新的DataTable。比3多一個參數(shù),可以定義返回表的名稱。
C# DataTable合并以及去除重復數(shù)據(jù)
代碼如下:
合并
/// <summary> /// 合并表結構相同datatable數(shù)據(jù) /// </summary> public DataTable Mergedata(){ ?DataTable data = new DataTable(); ?DataTable deptdata = new DataTable();? ? ?data=DBHelper.FillDataTable("select * from T1", null); ?deptdata=DBHelper.FillDataTable("select * from T2", null); ?data.Merge(deptdata, true);? ?return ?data; }
剔除重復數(shù)據(jù)
?? ?/// <summary> ?? ?/// 去除datatable重復數(shù)據(jù) ?? ?/// </summary> ?? ?public DataTable distinctdata()? ?? ?{ ?? ? DataTable data = new DataTable(); ?? ? DataTable distinctdata = new DataTable(); ?? ? ?List<string> datarowlist = new List<string>(); ? ? ? string[] datarow; ? ? ?? ? ? ?foreach (DataColumn row in data.Columns) //遍歷出表頭 ? ? ? { ? ? ? ?datarowlist.Add(row.ToString()); ? ? ? } ? ? ?datarow = datarowlist.ToArray(); ? ? ? ? ? ?DataView dv = new DataView(data); ? ? ? ?? ? ? ?distinctdata = dv.ToTable(true, datarow); //對表所有字段進行過濾,true表示使用distinct方法 ?? ? return ?distinctdata; }
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
C# 如何在WINForm程序中創(chuàng)建XML文件
這篇文章主要介紹了C# 如何在WINForm程序中創(chuàng)建XML文件,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下2021-02-02