作者areyo (没有名字的怪物)
看板C_Sharp
标题[问题] asp.net + linq to sql
时间Fri Jul 14 20:58:28 2017
各位晚安
请教个问题,我的环境是asp.net c# + MSSQL
透过linq to sql读取资料库资料,用gridview去显示
但是当资料笔数很大时(约10万笔),要载入页面时就很慢
有没有什麽办法可以改善呢??? 是得要用ajax吗?
我是都这样读取资料的
var res = from t in myDB.commandrecords
orderby t.item_no descending
select t;
GridView1.DataSource = res;
GridView1.DataBind();
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.254.91.30
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1500037111.A.1DB.html
1F:推 J002: gridview有做分页吗? 07/14 21:09
2F:→ J002: 另外 捞10万笔出来全部长到网页上当然会慢QQ 07/14 21:09
3F:→ areyo: 有,那怎麽做到"点下一页,再载入呢"? 07/14 22:16
4F:推 J002: myDB.commandrecords.Skip(pageIndex * pageCount).Select(p 07/14 23:03
5F:→ J002: => p); 07/14 23:03
6F:→ J002: 啊,.Skip前面要加入.OrderByDescending(p => p.item_no) 07/14 23:04
7F:推 J002: 阿,抱歉 刚刚想到.Select应该要改成.Take(pageCount)就好 07/14 23:11
8F:→ J002: 这样就变成每次只取特定范围的笔数了 07/14 23:11
9F:→ qa17b: 10万笔光DB就要跑多久了 更何况是程式 07/15 02:15
10F:→ kevintsengtw: 查怎麽用 Skip 与 Take 做资料分页 07/15 06:58
11F:→ areyo: 所以不要依赖系统预设的 07/15 12:01
12F:推 J002: 如果是直接用gridview吃Linq(/EF)DataSource控制项,印象中 07/15 12:17
13F:→ J002: 会搭配GridView做分页,但若是自己写的话就得一切手动了0rz 07/15 12:17
J002大大,我原本的写法就是利用gridview去做分页。
那跟自己手动去处理分页,有何差异呢? 手动效能会较好吗??
※ 编辑: areyo (1.174.247.226), 07/15/2017 16:31:02
14F:推 ian90911: 印象gridview分页只是分你喂给他的source内的资料 07/15 16:37
15F:→ ian90911: 我通常是喂给他10笔实际资料 告诉他分页器有100页 07/15 16:37
16F:→ ian90911: 在点分页器第2页时再去捞11~20笔实际资料 07/15 16:38
17F:推 J002: 印象中,用gridview接datasource控制项的话他会自己去捞指定 07/16 00:36
18F:→ J002: 范围内的资料,并同时计算页数那些。但若是自己来的话,就要 07/16 00:37
19F:→ J002: 自己处理,但您的写法就是会捞了全部资料後再让gridview分页 07/16 00:38
20F:→ J002: 当然会比较慢一些@@" 07/16 00:38
21F:推 J002: ian90911大说的方法就是手动的话,需要做的事情。 07/16 00:40
22F:→ areyo: 谢谢两位 07/16 08:22