0

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

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 页面上显示图像?

4

1 回答 1

7

在 ASP.Net 中,此代码属于与要显示图像的页面不同的资源(文件/页面)。通常我*.ashx为此使用处理*.aspx程序(将现有代码移动到 ProcessRequest() 方法(处理程序)或 Page_Load() 方法(Page),并更改代码,以便它写入响应流而不是内存流。您还需要设置适当的内容类型标头。

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

于 2012-10-02T19:36:23.663 回答