首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

真心请问 For循环有关问题

2013-07-08 
真心请教 For循环问题数据库有个表,要求编码不重复上传数据进行逐一比对现在数据表大了,程序就慢了如何优

真心请教 For循环问题
数据库有个表,要求编码不重复
上传数据进行逐一比对
现在数据表大了,程序就慢了
如何优化
[解决办法]
循环大了改小一点不就可以了,写个分页循环
[解决办法]
            var max = 1000000;
            List<int> l =new List<int>();
            for (int i = 0; i < max; i++)
            {
                l.Add(i+1);
            }
            var x = "";
            var u = max/2;
            var y = max % 2;
            var t = u + y;
            for (int i = 0; i < max; i=i+2)
            {
                x += l[i].ToString()+",";
                if (y == 0)
                { 
                    x += l[i+1].ToString()+",";
                }
                else
                {
                    if((i+1)<max)
                    x += l[t - (u - i)].ToString() + ",";


                };
            }

你看我循环走了几回
[解决办法]
为什么这里的回答都这么奇葩,难道是我理解的不对?

你所谓的对比,其实就是查询,保证新录入的数据不会重复,就像有的csdn用户名已被注册,你不能使用一样。对吗?

如果是这样的话。那就是你说的数据太多了,顺序查询效率太低,所以慢。那这样的话,跟你怎么写代码关系就不太大了,就一个条件(或几个)的查询,还能怎么着。你要做的是数据库的优化,表的优化,怎么做。加索引,提高查询效率。
[解决办法]
不重复? 建个主键 或者 唯一约束就可以了吗。真心请问 For循环有关问题
[解决办法]
首先你将导入数据中的编码 全部提取出来,用一个SQL去查询哪些重复,然后将重复的数据处理下或者是去除掉,然后再导入。
[解决办法]
用Linq,不过数据量大的话还是慢。
[解决办法]
要比对的列  添加索引吧,是加 单索引 还是加组合索引 就看你 你自己写的 查询语句的条件了 
[解决办法]
如果你用sqlserver,可以用C#给写个函数然后返回结果
至于怎么循环还是其他的你自己多作实验,看看那个是你要的
要不就在说清楚些

热点排行