首頁 > 軟體

c# DataView.ToTable()方法 去除表的重複項問題

2022-12-03 14:01:31

c# DataView.ToTable()方法 去除表的重複項

DataView.ToTable()方法及其過載:

1.DataView.ToTable()

根據現有DataView中的行,建立並返回一個新的DataTable。

2.DataView.ToTable(String)

根據現有DataView中的行,建立並返回一個新的DataTable。引數String為返回的DataTable的名稱,輸出的表與輸入表的列相通,不可自定義。

3.DataView.ToTable(Boolean,String[])

根據現有DataView中的行,建立並返回一個新的DataTable。引數Boolean如果為true,則說有列都具有不同值的行,為false時不去衝,且預設為false。

可自定義返回的列,陣列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[])

根據現有DataView中的行,建立並返回一個新的DataTable。比3多一個引數,可以定義返回表的名稱。

C# DataTable合併以及去除重複資料

程式碼如下:

合併

/// <summary>
/// 合併表結構相同datatable資料
/// </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;
}

剔除重複資料

    /// <summary>
    /// 去除datatable重複資料
    /// </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;
}

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com