得到datatable中重复的数据并显示

ma_qiong 2013-08-09 02:36:57
怎么得到datatable中重复的数据并显示,要是用两个for循环,这样会慢很多。有没有其他方法?
...全文
841 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ma_qiong 2013-08-12
  • 打赏
  • 举报
回复
  var query = from t in dtFin.AsEnumerable()
                                group t by new { t1 = t.Field<string>("保单号"), t2 = t.Field<string>("批单号"), t3 =t.Field<object>("保费金额") } into m
                        select new
                        {
                            amout = m.First().Field<object>("保费金额"),
                            pob = m.Key.t1,
                            pop = m.Key.t2,
                            rowcount = m.Count()
                        };
                    foreach (var q in query) 
                    {
                        if (q.rowcount > 1)
                        {
                              //有重复
                         }
                     }
ma_qiong 2013-08-12
  • 打赏
  • 举报
回复
结贴,我弄好了,用的是linq,和
引用 14 楼 Chinajiyong 的回复:
可以用linq select col_1,col_2,count(1) from table group by col_1,col_2 having count(1) >1; var query=from d in dt.AsEnumrable() group d by new{ d.Field<string>("卡号"), d.Field<decimal>("金额")} into g where g.Count() >= 10 select new { g.Key, 。。。 };
这个差不多。
EnForGrass 2013-08-12
  • 打赏
  • 举报
回复
可以用linq select col_1,col_2,count(1) from table group by col_1,col_2 having count(1) >1; var query=from d in dt.AsEnumrable() group d by new{ d.Field<string>("卡号"), d.Field<decimal>("金额")} into g where g.Count() >= 10 select new { g.Key, 。。。 };
令狐苦瓜 2013-08-12
  • 打赏
  • 举报
回复
是说导入的时候不能导入重复数据么?那就在insert的时候判断一下,用 if not exists (select 1 from table where id =?id) insert into table ..... else .....
ma_qiong 2013-08-09
  • 打赏
  • 举报
回复
我这怎么用sql弄啊,要在导入到数据库之前要把数据判断了呢,我要确保导入的文件和数据库中的数据是一直的,因为这个Excel文件是要留底的,不能有存在数据库和文件不一样的情况。
引用 11 楼 wangdoublejia 的回复:
用sql来做
令狐苦瓜 2013-08-09
  • 打赏
  • 举报
回复
用sql来做
ma_qiong 2013-08-09
  • 打赏
  • 举报
回复
可是我这些数据不是数据库中来的,是从Excel中导入的,所以没法用sql语句写咯。
引用 9 楼 hm250234836 的回复:
引用 6 楼 ma_qiong 的回复:
在datatable中根据金额,卡号判断,如果有重复的,就把重复的显示,给提示。让重新修改卡号。 [quote=引用 3 楼 hm250234836 的回复:] 是要取消某个字段的重复项?然后绑定?
根据金额和卡号查询出表中的所有重复的记录? 可以考虑用这个查询语句

select col_1,col_2,count(1) from table  group by col_1,col_2  having count(1) >1;
[/quote]
七个宝宝 2013-08-09
  • 打赏
  • 举报
回复
引用 6 楼 ma_qiong 的回复:
在datatable中根据金额,卡号判断,如果有重复的,就把重复的显示,给提示。让重新修改卡号。
引用 3 楼 hm250234836 的回复:
是要取消某个字段的重复项?然后绑定?
根据金额和卡号查询出表中的所有重复的记录? 可以考虑用这个查询语句

select col_1,col_2,count(1) from table  group by col_1,col_2  having count(1) >1;
ma_qiong 2013-08-09
  • 打赏
  • 举报
回复
引用 5 楼 zh1223ch 的回复:
创建datatable2 你所谓重复是指哪个字段重复 group by 一下 统计出来重复的数据 放到datatable2中
在datatable中怎么group by ?
ma_qiong 2013-08-09
  • 打赏
  • 举报
回复
for (int i = 0; i < dtFin.Rows.Count; i++) { int count = 0; foreach (DataRow drj in dtFin.Rows) { drj["保单号"] = !string.IsNullOrEmpty(drj["保单号"].ToString()) ? drj["保单号"].ToString().Replace("'", "").Replace(" ", "") : drj["批单号"].ToString().Replace("'", "").Replace(" ", ""); if (dtFin.Rows[i]["保单号"].ToString() == drj["保单号"].ToString() && Convert.ToDecimal(dtFin.Rows[i]["保费金额"]) == Convert.ToDecimal(drj["保费金额"])) { ++count; } if (count >= 2) { this.labMsg.Text = "Excel中保单号: " + dtFin.Rows[i]["保单号"] + ",保费金额" + dtFin.Rows[i]["保费金额"] + "出现了多次,请检查."; cmd.CommandText = string.Format("update sys$sign set type='闲',opid=0,optime=null,source=null"); rs = Convert.ToInt32(cmd.ExecuteNonQuery()); return; } } } 我现在是这样判断的,可是这样循环次数太多了。
ma_qiong 2013-08-09
  • 打赏
  • 举报
回复
在datatable中根据金额,卡号判断,如果有重复的,就把重复的显示,给提示。让重新修改卡号。
引用 3 楼 hm250234836 的回复:
是要取消某个字段的重复项?然后绑定?
齐的隆冬强 2013-08-09
  • 打赏
  • 举报
回复
创建datatable2 你所谓重复是指哪个字段重复 group by 一下 统计出来重复的数据 放到datatable2中
MTUFUL 2013-08-09
  • 打赏
  • 举报
回复
七个宝宝 2013-08-09
  • 打赏
  • 举报
回复
是要取消某个字段的重复项?然后绑定?
ma_qiong 2013-08-09
  • 打赏
  • 举报
回复
哎,没有人回答吗?
ma_qiong 2013-08-09
  • 打赏
  • 举报
回复
自己顶。。。

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧