【发布时间】:2012-02-17 20:19:05
【问题描述】:
我在 SQL Server 数据库中有 PDF 文件数据,列类型为 image(以前的数据库设计器不好)。我需要做的是将二进制数据读给客户端,以便他们可以将 PDF 直接下载到他们的计算机上。
到目前为止,我的代码如下:
SqlConnection con = new SqlConnection();
con.ConnectionString = "casIntranetConnectionString";
SqlCommand com = new SqlCommand("SELECT [File], [FileName] FROM [com].[catalog1] WHERE [FileName] = @filename");
com.Connection = con;
com.Parameters.AddWithValue("filename", Request.QueryString["filename"]);
con.Open();
SqlDataReader reader = com.ExecuteReader();
if (reader.Read())
{
Response.Clear();
Response.AddHeader("Content-Type", "application/pdf");
Response.AddHeader("Content-Disposition", "inline; filename=" + Request.QueryString["filename"] + ".pdf");
}
我假设我需要读者读出字节,但那是我真的不知道我在做什么的地方。有什么建议吗?
谢谢!
【问题讨论】:
-
在您做任何事情之前,您是否有理由在 2012 年使用 ADO.NET 手动执行此操作?
-
@TimothyP 是否愿意提出合适的替代方案?
-
我建议你看一下实体框架等技术,虽然我当然无法告诉你它是否适合你的项目,我认为它“可能”是。它使您可以专注于什么,而不是如何。请不要冒犯,非故意的
-
能不能直接将二进制文件注入媒体播放器,这样就不用下载了,只是即时播放文件?
标签: c# asp.net sql-server database pdf