更新数据的问题!!!!!!!!!!!!!!!!!!!!! 本帖最后由 qiudong_5210 于 2011-01-21 10:39:10 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以在后台代码中用事务,也可以在数据库中用事务。后台类中也行,弄个字段保存ArrayList长度,更新数据库时影响行数=ArrayList长度时成功,否则回滚。 很多数据使用ArrayLIst保存,是否合理通过sqldataadapter更新数据ArrayLIst比较使用list.Intersect() list.Except() 我们要把数据保存在数组中,然后判断数据,选择对数据的操作list.Intersect() list.Except() 是用的linq吗? 我们这不用linq的 我感觉主要是在判断那里节省时间,那样就好一点了,每个ArrayList中有8万条数据,从判断到最后操作完要一分钟,太慢了 有没有什么方法可以快速的判断出两个ArrayList中的元素,使每个ArrayList中剩下对方没有的数据? 不建议用ArrayList,因为它里面元素的类型是object,比较时会有转换类型的过程,速度慢。可考虑用泛型集合存储string。 我们这要求用数组,用数组还要去除掉两个数组中相同的数据留下对方没有的数据,然后对这些数据进行操作,如果用string数组的还要用ArrayList存储,所以直接用Arraylist了 先Delete 数据库中在ArrB中存在的数据再Insert ArrB中的数据是不是效果一样的 如果两个string数组在比较的时候有没有啥快速的方法啊? 如果非得集中一大批再比较处理,就在每条数据发生变化时,将符合比较条件的放到一个容器类里,到时间集中处理。还有为什么不用datatable呢,看你的问题好像数据是常驻内存的吧。 假设ArrayListA中的数据是:"a","b","c","d","e"假设ArrayListB中的数据时:"c","d","e","f","g"要求最后A中剩下a,bB中剩下f,g把A中的数据从数据库中删除把B中的数据添加到数据库中实际操作中每个ArrayList不低于40万条数据,要求可以承受百万级数据的考验 我原来用Datatable,我们头说速度有点慢我就用ArrayList了,发现效率提高了一倍 到底是ArrayList还是用数组啊?ArrayList一种集合。 我们要求用数组早上问我们头,ArrayList算是数组还是集合头说,是数组 关键是给定的两组数据是否按某种规则排序过,如果排序过则好办了,否则几乎难以优化。比如:abc acd bcd beeaee abc aee bii bee b88 bbb是排序过的两组数据,如果用一般两层循环遍历比较,最坏的可能是需要循环比较4*7=28次,但首字母是a的单词肯定不会跟首字母是b的单词相等,所以可以分为两组:a开头的和b开头的,最坏的可能是需要循环比较2*3+2*4=14次,比原先少。如果排序过的可以像上面那样分而治之,组内元素个数越少效率越高,没排序过的不知道还能怎样优化。 数据时读出来 ,不过是在转换成ArrayList之前,排过序了 ArrayList开销当然打了,比Table就快一点,因为Table要维护类黑列————假设ArrayListA中的数据是:"a","b","c","d","e"假设ArrayListB中的数据时:"c","d","e","f","g"要求最后A中剩下a,bB中剩下f,g这牵扯了 添加和删除ArrayList添加就是抛弃形式的copy,就是说他会产生很多的副本IList<>会在快一点,数组会在快一点使用折半循环会在快一点就是说每次比对2个数据,下标每次向下移动2个但是要求循环要能被2整除。在开一个线程做双处理,还能快一点这样性能就压榨出来了但是,这种程序如果有一点错误调试也很麻烦————还有一个方式就是,不管他是什么,统统写入数据库然后给他一个临时的状态比如“数据正在审核”到了晚上没人的时候开一个计划任务,这样明天数据就处理好了————超时好说,你这样写executionTimeout=“9999999999999999999999”就没问题了 诚找一ASP.NET C# 的兼职做个网站, 北京,城北立水桥附近 求个技巧问题 从数据库中查出来组成了一套题,怎么导出WOrd。。。帮忙结贴! asp.net 树型结构应该如何设计( VS.net 环境) 苦求解决办法 ----- 如何给 Table 动态添加 TableRow ? 为什么不显示啊 我想往以下的URL发送一个HTTP POST 如何发送 最好给出个源代码C#的 又来送分来了 如何执行外部文件中保存的大段sql语句? StartupScript 问题 checkboxList绑定List数据源 超过了最大请求长度
通过sqldataadapter更新数据
ArrayLIst比较使用list.Intersect() list.Except()
我们要把数据保存在数组中,然后判断数据,选择对数据的操作list.Intersect() list.Except()
是用的linq吗? 我们这不用linq的
用数组还要去除掉两个数组中相同的数据
留下对方没有的数据,然后对这些数据进行操作,如果用string数组的还要用ArrayList存储,
所以直接用Arraylist了
再Insert ArrB中的数据
是不是效果一样的
假设ArrayListB中的数据时:"c","d","e","f","g"
要求最后A中剩下a,b
B中剩下f,g
把A中的数据从数据库中删除
把B中的数据添加到数据库中实际操作中每个ArrayList不低于40万条数据,
要求可以承受百万级数据的考验
我就用ArrayList了,
发现效率提高了一倍
比如:
abc acd bcd bee
aee abc aee bii bee b88 bbb
是排序过的两组数据,如果用一般两层循环遍历比较,最坏的可能是需要循环比较4*7=28次,但首字母是a的单词肯定不会跟首字母是b的单词相等,所以可以分为两组:a开头的和b开头的,最坏的可能是需要循环比较2*3+2*4=14次,比原先少。
如果排序过的可以像上面那样分而治之,组内元素个数越少效率越高,没排序过的不知道还能怎样优化。
————
假设ArrayListA中的数据是:"a","b","c","d","e"
假设ArrayListB中的数据时:"c","d","e","f","g"
要求最后A中剩下a,b
B中剩下f,g
这牵扯了 添加和删除ArrayList添加就是抛弃形式的copy,就是说他会产生很多的副本
IList<>会在快一点,数组会在快一点
使用折半循环会在快一点
就是说每次比对2个数据,下标每次向下移动2个
但是要求循环要能被2整除。
在开一个线程做双处理,还能快一点
这样性能就压榨出来了
但是,这种程序如果有一点错误调试也很麻烦
————
还有一个方式就是,不管他是什么,统统写入数据库
然后给他一个临时的状态比如“数据正在审核”
到了晚上没人的时候开一个计划任务,这样明天数据就处理好了
————
超时好说,你这样写executionTimeout=“9999999999999999999999”就没问题了