獲取對固定列不重複的新DataTable
#region 獲取對固定列不重複的新DataTable /// <summary> /// 獲取對固定列不重複的新DataTable /// </summary> /// <param name="dt">含有重複數據的DataTable</param> /// <param name="colName">需要驗證重複的列名</param> /// <returns>新的DataTable,colName列不重複,表格式保持不變</returns> private DataTable GetDistinctTable(DataTable dt, string colName) { if (dt.Rows.Count == 0 || dt.Rows.Count == 1) { WriteFile("GetDistinctTable傳入dt的行數小於等於1" + "\r\n", logName, out outMessage); return dt; } DataView dv = dt.DefaultView; //dv過濾dv中的重複列名 DataTable dtCardNo = dv.ToTable(true, colName); DataTable Pointdt = new DataTable(); //ToTable()根據現有 DataView 中的行,創建並返回一個新的 DataTable。 //輸出表與輸入表包含相同的列 Pointdt = dv.ToTable(); Pointdt.Clear(); for (int i = 0; i < dtCardNo.Rows.Count; i++) { try { //dr取的是Select返回的DataRow[]中的第一條數據 //如果dtCardNo.Rows[i][0].ToString()中沒有值會報數組超出索引界限的錯誤 if (!string.IsNullOrEmpty(dtCardNo.Rows[i][0].ToString())) { DataRow dr = dt.Select(colName + "='" + dtCardNo.Rows[i][0].ToString() + "'")[0]; //DataRow.ItemArray通過一個數組來獲取或設置此行的所有值 Pointdt.Rows.Add(dr.ItemArray); } } catch (Exception ee) { //可以將錯誤寫入日誌文件 } } return Pointdt; } #endregion
linqs實現
https://blog.csdn.net/jiankunking/article/details/42749663
最後更新:2017-04-03 12:54:23