我知道这个问题之前已经发布了数百万次,但这可能会有所不同。
我正在使用带有列 id、year、month、pdffile 的 sql 表
在我的网页中,我希望用户从他们选择的时间范围内查看他们希望查看的 pdf 文档。
到目前为止:
string year = ddlYear.SelectedValue.ToString();
string month = ddlMonth.SelectedValue.ToString();
pdfFrame.Attributes["src"] = "../pdfDocs.ashx?Year=" + year + "&Month=" + month;
它加载pdf,如果它在那里。那是我的问题。我如何在我的问题标题中发现错误?我想捕获该错误并在标签中向用户显示一条消息,说明未找到文件。我正在使用处理程序来读取我的 pdf 文件的 varbinary。
这是处理程序代码:
SqlConnection conn = new SqlConnection(@"Server=DEV6\MSSQLHOSTING;Database=Intranet;Trusted_Connection=True;");
conn.Open();
SqlCommand cmd = new SqlCommand("select PDFDocument from LeaveChart where (Year like @Year and Month like @Month)", conn);
cmd.Parameters.AddWithValue("Year", context.Request.QueryString["Year"]);
cmd.Parameters.AddWithValue("Month", context.Request.QueryString["Month"]);
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
byte[] content = (byte[])reader.GetValue(0);
MemoryStream ms = new MemoryStream(content);
ms.Position = 0;
context.Response.ContentType = "Application/pdf";
ms.WriteTo(context.Response.OutputStream);
context.Response.End();
reader.Close();
conn.Close();
就像我说的那样,它可以显示当前文件。谁能提供一些建议?是否可以从处理程序将消息发送回网页,说明没有文件以及如何在不震惊客户的情况下显示它?
提前致谢