以前合作做一个程序的时候,由于数据库设计原因。让我碰到了一个比较棘手的问题,就是最后我的数据Table里面存在了一行或多行重复行,那么怎么删除这些重复行了。从网上找了许多材料,还是用了一个最笨的办法,把Table的行检索一遍把重复的行删除掉(在微软的社区里也有这样的例子)。最坏的情况时间复杂度为o(行X列)。如果数据量比较小的话,这样的性能还可以忍受。但是数据量大的话。其速度也就不言而喻了。
检索部分代码如下:
筛选掉重复行
上面的代码性能低。就不再多做剖析了。
下面来看看.Net提供的一个方法。个人认为还是比没有的好。只是多了一个转的过程起码自己不用再像上面所使用方法一行一行来找了。好了,言归正传。看下面的代码
使用DataView的自动筛选功能
主要做的工作就是把存在重复行数据的DataTable送给Dataview.然后使用DataView类的一个ToTable方法中的一个重载方法。就是上面用的,一共有两个参数,第一个bool类型参数就是指定装换成DataTable后是否保留重复行,第二个参数是一个字符串数组,用来指定转换成DataTable后保留原有表中的哪些字段。字段名不区分大小写。
希望能帮到初学者。 <script type="text/javascript"></script> <script src="cache/hottags_forum_cache_jsonp.txt" type="text/javascript"></script>