我有一个MS SQL视图,我想以CSV下载的形式在我的ASPNET Web窗体应用程序中使用。我正在将Entity Framework用于项目中的其他视图和表。启用此下载的最佳方法是什么?
我可以添加一个LinkButton,其Click处理程序将在视图上进行迭代,将其CSV形式写入磁盘,然后提供该文件。但是,如果可以避免的话,我宁愿不写到磁盘上,因为这涉及到一些其他解决方案可以避免的迭代代码。
您可以遍历数据集,但是无需在服务器上创建CSV文件,只需通过HTTP响应将其返回即可。以下功能可以解决问题。
Public Shared Sub ExportTextFile(ByVal response As System.Web.HttpResponse, ByVal text As String, ByVal fileName As String) response.Clear() response.AddHeader("content-disposition", String.Format("attachment;filename={0}", fileName)) response.Charset = "" response.Cache.SetCacheability(HttpCacheability.NoCache) response.ContentType = "application/vnd.text" Dim stringWrite As New System.IO.StringWriter Dim htmlWrite = New HtmlTextWriter(stringWrite) response.Write(text.ToString) response.End() End Sub