English 中文(简体)
下载<10 000浏览量,从数据库表格中排出,原文照发。
原标题:Downloading >10,000 rows from database table in asp.net
  • 时间:2009-09-01 01:08:31
  •  标签:

我应如何在Ap.net网页上提供下载功能,以便从数据库表下载一系列浏览量,该表格代表的是只为成员提供原始类型(通常采用一种便于Excel阅读的格式)的linq2sql类。

E.g.

public class Customer
{
public int CustomerID;
public string FirstName;
public string LastName;
}

www.un.org/Depts/DGACM/index_spanish.htm 我迄今为止所尝试的内容。

最初,我创建了一个数据表,将所有客户数据输入本表,并将其输入数据单,然后下载一个称为数据Grid1的下载纽吨。 RenderControl to an HtmlTextWriter that was subsequently written to the response (with content category “application/vnd.ms-excel”) and that workvy for a small number ofuser.

However,现在本表的浏览量已经达到10 000个,预计会达到10万个以上,因此,在用户能够点击下载的 but子之前,在网页上显示所有数据正在变得令人望而却步。

www.un.org/Depts/DGACM/index_spanish.htm 因此,问题是:。 我如何能够提供下载所有数据的能力,而不必首先在数据单上显示所有数据?

最佳回答
问题回答

在用户要求下载后,你可将数据写到服务器上的档案中(CSV、Excel、XML等),然后将数据发送至URL。

我在Matti Berseth blog上为大型记录机使用了以下方法。

Export GridView to Excel

如果你对请求时间有问题,就会试图在网上增加请求时间。

除了合理建议,首先将服务器数据保存在一份档案中之外,我还要指出,没有理由使用数据Grid(也是你的问题之一)。 几乎没有任何数据。 你们可以仅仅篡改记录,并直接利用HtmlTextWriter(或公正的反应)来挽救这些记录。 书写或类似)与服务器文档或客户产出流。 在我看来,这似乎是一个明显的答案,因此我必须失踪。

鉴于记录的数量,你可能会遇到一些问题。 如果你直接写给客户产出流,并首先缓冲服务器上的所有数据,服务器可能会遇到压力。 但可能不是;它取决于炉 memory的记忆量、实际数据规模以及人们下载数据的次数。 这种方法的好处是不能阻挡数据库连接太长时间。 或者,你可以直接写到客户产出流上来。 这可能会使数据库链接长期受阻,因为它取决于客户的下载速度。 但同样,你的申请规模很小或中等(受众),任何东西都是罚款。

http://filehelpers.sourceforge.net/“rel=“nofollow noreferer”>FileHelpers 图书馆。 它开设一套免费的、极佳的实用的班级,仅处理这种情况——从文字档案中进口和出口数据;或是限制(如CSV)或固定住所。

它提供了各种选择和做事方式的参照,并且提供了FREE,并在Im使用这一工具的各种项目中发挥了真正的良好作用。 你可以出口一个数据表,一个阵列,一个物体清单——无论你有哪一个。

甚至有进出口Excel文档,因此,你确实获得了一席之地的选择。

仅仅开始使用文件Helpers——它拯救了你这么多的bor打字和 st子,你们却不相信:

页: 1

仅用警告的话来说,Excel对数据浏览数有限制——~65k。 CSV将受到罚款,但如果客户将档案输入Excel,他们将受到这一限制。

为什么不让他们通过数据页,或许在数据页前进行分类,然后给他们一个 but子,把所有东西都作为钟子。

这似乎像DLinq那样做,无论是在时间上,它还是用文字写出,因为这样,你就不必在所有100克的囚室读到,然后再处理。

因此,对于老板来说,你只是需要使用不同的LINQ问询,来接收所有囚室,然后开始储蓄,将每个囚室与一名分离者分开,通常为 com或制片。 用户或许可以选择这一点。





相关问题
热门标签