关键词搜索

源码搜索 ×
×

获取对固定列不重复的新DataTable

发布2014-01-08浏览1968次

详情内容

  1. #region 获取对固定列不重复的新DataTable
  2. /// <summary>
  3. /// 获取对固定列不重复的新DataTable
  4. /// </summary>
  5. /// <param name="dt">含有重复数据的DataTable</param>
  6. /// <param name="colName">需要验证重复的列名</param>
  7. /// <returns>新的DataTable,colName列不重复,表格式保持不变</returns>
  8. private DataTable GetDistinctTable(DataTable dt, string colName)
  9. {
  10. if (dt.Rows.Count == 0 || dt.Rows.Count == 1)
  11. {
  12. WriteFile("GetDistinctTable传入dt的行数小于等于1" + "\r\n", logName, out outMessage);
  13. return dt;
  14. }
  15. DataView dv = dt.DefaultView;
  16. //dv过滤dv中的重复列名
  17. DataTable dtCardNo = dv.ToTable(true, colName);
  18. DataTable Pointdt = new DataTable();
  19. //ToTable()根据现有 DataView 中的行,创建并返回一个新的 DataTable。
  20. //输出表与输入表包含相同的列
  21. Pointdt = dv.ToTable();
  22. Pointdt.Clear();
  23. for (int i = 0; i < dtCardNo.Rows.Count; i++)
  24. {
  25. try
  26. {
  27. //dr取的是Select返回的DataRow[]中的第一条数据
  28. //如果dtCardNo.Rows[i][0].ToString()中没有值会报数组超出索引界限的错误
  29. if (!string.IsNullOrEmpty(dtCardNo.Rows[i][0].ToString()))
  30. {
  31. DataRow dr = dt.Select(colName + "='" + dtCardNo.Rows[i][0].ToString() + "'")[0];
  32. //DataRow.ItemArray通过一个数组来获取或设置此行的所有值
  33. Pointdt.Rows.Add(dr.ItemArray);
  34. }
  35. }
  36. catch (Exception ee)
  37. {
  38. //可以将错误写入日志文件
  39. }
  40. }
  41. return Pointdt;
  42. }
  43. #endregion




linqs实现

http://blog.csdn.net/jiankunking/article/details/42749663

相关技术文章

最新源码

下载排行榜

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载