Csharp/C#教程:从sql server下载varbinary数据分享


从sql server下载varbinary数据

我有一个带有Varbinary(Max)列的SQL Server表,它基本上是压缩数据。

我的页面允许用户下载此数据(在通常的用户身份validation之后)。

过去工作正常,数据量较小,但现在随着时间的推移,数据也越来越大。 在“保存”对话框出现之前,我基本上面临很多问题等待时间。

码:

  while (reader.Read()) { Response.Buffer = false; Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = "application/gzip"; Response.AddHeader("content-disposition", "attachment;filename=" + "vbet_1_1.sdf.gz"); byte[] bytes = (Byte[])reader["backupdata"]; // STUCK HERE Response.BinaryWrite(bytes); Response.Flush(); Response.End(); } 

在调试器中,我可以看到

 byte[] bytes = (Byte[])reader["backupdata"]; 

是滞后的地方。

我的平台是ASP.Net,包含.NET Framework 4.0,SQL Server 2008,C#codebehind

您需要回传流响应。 读取内存中的整个文件然后将其写出不会扩展,随着请求数量文件大小的增加,您将开始耗尽服务器。

通过ASP.Net MVC和FILESTREAM MVC查看从SQL Server下载和上载图像:从SQL Server下载和上载图像以查看如何执行此操作的示例。 因为你不使用MVC而是直接ASP.NEt你可以更简单,但想法是相同的:

这可能会有所帮助:

 Response.AppendHeader("Content-Type", "application/gzip "); Response.OutputStream.Write((Byte[])reader["backupdata"],0,((Byte[])reader["backupdata"]).Length); 

您可以使用sql2012中的文件流表直接存储文件

上述就是C#学习教程:从sql server下载varbinary数据分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/988217.html

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐