哪个是用sql绑定10000多条记录的好方法?

时间:2009-11-08 01:03:36

标签: asp.net javascript data-binding datagridview

第一种方式使用java脚本

第二种方式在asp.net sqldatasourse中使用Data sourse

在将数据加载到网页时压力较小

4 个答案:

答案 0 :(得分:4)

将10000条记录绑定到网页上是一个可怕的想法。明智的解决方案做分页;即,它们显示数据的子集,然后让用户在其中向上/向下翻页。

答案 1 :(得分:1)

你可能想要分页数据,取决于你是怎么做的,你可以用javascript或.net sqldatasource这两种方式来做。

如果您不关心具有JavaScript功能的用户,我会使用javascript加载数据以获得更好的用户体验。

这里有一个关于如何使用ajax:Grid来分页数据但没有回发的例子。

http://dotnetslackers.com/articles/ajax/ASPNETAjaxGridAndPager.aspx

答案 2 :(得分:1)

回应 sikender 的评论

  

ya ..我知道分页在那里......但是它用于查看...页面模式中的数据..但我想用datagrid ...使用哪种方法绑定这种类型的数据。告诉我哪种方法..我提到两种方法..以上..哪一个更好,怎么......告诉我..请

异步javascript调用似乎可以减少压力,因为客户端能够看到页面部分加载后跟其数据。

答案 3 :(得分:1)

为什么要使用javascript方法绑定数据网格?

为什么不使用数据表?

//一些代码段

e.g。

datatable myDt = getTheDataSourceFromDatabase();
     if(myDt != null && myDt.rows.count > 0)
{
   myDatagrid.datasource = myDt;
   myDatagrid.databind();
}

如果您需要异步响应,请使用“更新”面板。

使用javascript方法有很多陷阱

a)客户端可以禁用浏览器的JavaScript

b)Sql注入,因为你在访问javascript时不能使用存储过程,除非你使用 native ajax 等列出一些

因此,在服务器端进行大量数据库操作。

否则最好进行分页 ..您不必一次从数据库中提取所有记录。编写一个存储的proc,它将接受开始和结束页面限制,并将获取记录(use row_number() function)。或者,使用LINQ执行相同的操作(via Take & Skip

e.g。 a)Using Take and Skip method in LINQ queries

b)Custom Paging in GridView Using LINQ