我有以下代码从数据库中读取图像:
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页面上显示图像?
答案 0 :(得分:7)
在ASP.Net中,此代码属于您要显示图像的页面的单独资源(文件/页面)。通常我会使用一个处理程序(*.ashx
),但如果你真的想要,你可以使用普通页面(*.aspx
)(提示:处理程序更快更容易)。将现有代码移动到ProcessRequest()方法(处理程序)或Page_Load()方法(页面),并更改代码,以便代替内存流将其写入Response流。您还需要设置适当的内容类型标题。
完成后,更新要显示图像的页面。使用普通的<img
元素或<asp:Image
控件(可以使用)并设置src
属性以使用我们在上一段中创建的资源。您可能需要使资源足够智能,检查诸如会话,查询字符串或cookie之类的内容,以便数据告诉数据库记录的关键字以获取图像。如果您使用了查询字符串,请确保此时也将其设置为src属性的一部分。