我可以从数据库中读取图像,但我不知道如何在asp.net页面中查看图像?

时间:2012-10-02 19:32:40

标签: c# asp.net

我有以下代码从数据库中读取图像:

cn = new SqlConnection(@"Data Source=ADMIN-PC;Initial Catalog=imagedata;Integrated Security=True");

cmd = new SqlCommand("select *  from image where imgid=1", cn);
cn.Open();
SqlDataReader dr;

try
{
    dr = cmd.ExecuteReader();

    if (dr.Read())
    {
        byte[] imgarr = (byte[])dr["img"];
        ms = new MemoryStream(imgarr);
        ms.Seek(0, SeekOrigin.Begin);
   }
}
catch(Exception ex)
{
    MessageBox.Show(ex.Message);
}
finally
{
   cn.Close();
}

如何更新此内容以在ASP.Net页面上显示图像?

1 个答案:

答案 0 :(得分:7)

在ASP.Net中,此代码属于您要显示图像的页面的单独资源(文件/页面)。通常我会使用一个处理程序(*.ashx),但如果你真的想要,你可以使用普通页面(*.aspx)(提示:处理程序更快更容易)。将现有代码移动到ProcessRequest()方法(处理程序)或Page_Load()方法(页面),并更改代码,以便代替内存流将其写入Response流。您还需要设置适当的内容类型标题。

完成后,更新要显示图像的页面。使用普通的<img元素或<asp:Image控件(可以使用)并设置src属性以使用我们在上一段中创建的资源。您可能需要使资源足够智能,检查诸如会话,查询字符串或cookie之类的内容,以便数据告诉数据库记录的关键字以获取图像。如果您使用了查询字符串,请确保此时也将其设置为src属性的一部分。