- #region datatable去重
- /// <summary>
- /// datatable去重
- /// </summary>
- /// <param name="dtSource">需要去重的datatable</param>
- /// <param name="columnNames">依据哪些列去重</param>
- /// <returns></returns>
- public static DataTable GetDistinctTable(DataTable dtSource, params string[] columnNames)
- {
- DataTable distinctTable = dtSource.Clone();
- try
- {
- if (dtSource != null && dtSource.Rows.Count > 0)
- {
- DataView dv = new DataView(dtSource);
- distinctTable = dv.ToTable(true, columnNames);
- }
- }
- catch (Exception ee)
- {
- MessageBox.Show(ee.ToString());
- }
- return distinctTable;
- }
-
- /// <summary>
- /// datatable去重
- /// </summary>
- /// <param name="dtSource">需要去重的datatable</param>
- /// <returns></returns>
- public static DataTable GetDistinctTable(DataTable dtSource)
- {
- DataTable distinctTable = null;
- try
- {
- if (dtSource != null && dtSource.Rows.Count > 0)
- {
- string[] columnNames = GetTableColumnName(dtSource);
- DataView dv = new DataView(dtSource);
- distinctTable = dv.ToTable(true, columnNames);
- }
- }
- catch (Exception ee)
- {
- MessageBox.Show(ee.ToString());
- }
- return distinctTable;
- }
-
- #endregion
-
- #region 获取表中所有列名
- public static string[] GetTableColumnName(DataTable dt)
- {
- string cols = string.Empty;
- for (int i = 0; i < dt.Columns.Count; i++)
- {
- cols += (dt.Columns[i].ColumnName + ",");
- }
- cols = cols.TrimEnd(',');
- return cols.Split(',');
- }
- #endregion
微软内部实现:点击打开链接