如何从一个存储过程中移动10,000行数据,以使用c#winform优秀

情况如下 –

  • UserX需要关于PlayerY的信息。
  • 目前我得到有关PlayerY的详细信息,并运行两个返回两个数据集的sql脚本 – 每个数据集大约有10,000条logging。
  • 然后,我手动将这些集复制并粘贴到Excel工作簿中,并将其通过电子邮件发送给UserX

目前计划的方法:

  1. 我将为UserX创build一个简单的WinForm或WPF,它将接受PlayerY的细节input。
  2. 我将创build两个存储过程,它们将接受来自表单的input。

数据如何从数据库获取到UserX的客户端?

我问,因为数据集是相当大的,由于规模可能会有某些方法无法预料的问题。 如果存储过程首先将数据移动到实际的服务器表,然后有第二步,并将数据从服务器表中移动到Excel? 或者我应该只是让存储过程返回数据集,因为将它们直接移动到XL没有任何中间服务器表是容易的?

如果你打算取得loggingthr'c#,

而不是一次获取10000或更多的logging,取而代之的是具体的编号。 logging例如1000,10次。 这将使处理更快,更less的内存负载。

您不需要创build任何中间服务器表来存储数据集。

在c#中使用DocumentFormat.OpenXml.Spreadsheet,可以将该数据集写入Xlsx格式,或者使用System.xml创buildxml文件,或者使用第三方工具/创build自己的excel xml来创buildxls格式。

我build议你使用C#在运行时从存储过程返回的结果中创build.csv文件,.csv文件可以在Excel中打开,因此在最后的应用程序中仍然具有excel

也请看到这个链接,因此我不build议你使用Office的自动化

段落摘自http://support.microsoft.com/kb/257757 Microsoft目前不推荐并不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET)自动化Microsoft Office应用程序,DCOM和NT服务),因为Office在此环境中运行时可能会出现不稳定的行为和/或死锁。