gpt4 book ai didi

c#-4.0 - 将大文件写入 HTTP 响应

转载 作者:行者123 更新时间:2023-12-02 05:26:19 25 4
gpt4 key购买 nike

我目前正在使用 c# .net 开发一个 asp 应用程序。我必须查询一个大型 (10GB) SQLite 数据库并将数据作为 CSV 格式写入 HTTP 响应。我在做这个

        /*query database, use string builder to create a csv*/
Response.ContentType = "text/plain";
Response.AddHeader("Content-Length", result.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=\"Data.csv\"");
Response.Write(result);
Response.Flush();

适用于数据量较小的文件。但是当文件大小增加时,我得到一个 OutOfMemoryException。我认为使用 StringBuilder 创建字符串是导致问题的原因。我想不出任何方法来解决这个问题。谁能帮我解决这个问题?

最佳答案

需要通过DataReader读取数据,写入Response.OutputStream。像这样:

SqlDataReader dr;
//initialize datareader to your table
...
Response.Clear();
Response.ContentType = "text/plain";
Response.AddHeader("Content-Disposition", "attachment; filename=\"Data.csv\"");
var writer = new StreamWriter(Response.OutputStream);
while (dr.Read())
{
writer.WriteLine(dr[1].ToString()+";"+dr[2].ToString()+";"+dr[3].ToString()+";");
Response.Flush();
}

关于c#-4.0 - 将大文件写入 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com