繁体   English   中英

如何使用c#winform将10,000行数据从存储过程移动到excel

[英]How to move 10,000 rows of data from a Stored Procedure to excel using c# winform

情况如下 -

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

目前的计划方法:

  1. 我将为UserX创建一个简单的WinForm或WPF,它将接受PlayerY详细信息的输入。
  2. 我将创建两个将接受表单输入的存储过程。

数据如何从数据库传输到UserX的客户端?

我问,因为数据集非常大,并且由于尺寸的原因,某些方法可能存在无法预料的问题。 如果存储过程首先将数据移动到实际的服务器表,那么还有第二步并将数据从服务器表移动到Excel中吗? 或者我应该让存储过程返回数据集,因为它很容易将它们直接移动到XL而没有任何中间服务器表?

如果你打算获取记录thr'c#,

而不是一次获取10000条或更多条记录,而是获取特定的no。 记录,例如1000次,10次。 这将使流程更快,内存负载更少。

您无需创建任何中间服务器表来存储数据集。

使用c#中的DocumentFormat.OpenXml.Spreadsheet,您可以将该数据集写入Xlsx格式或使用System.xml创建xml文件或使用thrid party工具/创建自己的excel xml来创建xls格式。

我建议您使用C#在运行时从存储过程返回的结果创建.csv文件,可以在Excel中打开.csv文件,这样您仍然可以在应用程序结束时使用Excel作为应用程序

另请参阅此链接,因此我不建议您使用Office自动化

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM