asp.net从数据库里读取图片并显示到页面

怎么读取二进制流的图片。

为了简单点讲,我就只是在页面显示一张图片。在page_load()事件里写上如下代码:

//连接数据库

SqlConnection cn= new SqlConnection("server=.;u);

//这里就是从数据库提取id为1 的数据,这里显得硬编码了,只是为了简单,你可以传值过来让其获值

SqlCommand cm = new SqlCommand("select imagedata from myimage where conn1);

cn.Open();

SqlDataReader dr = cmd1.ExecuteReader();

if (dr.Read())

{

Response.BinaryWrite((byte[])sdr["imagedata"]);

}

Response.End();

在显示数据的时候我们用到了Response的BinaryWrite的方法,它将二进制字符串写进HTTP输出流。

这里我还想说的是,就比如上面的方法我们在页面的Load事件里写了,然后就可以在其他的页面调用;

this.Image1.ImageUrl = "imagestore.aspx";

以达到相同的效果。

这里还有就是从数据库里把数据取出来显示多张图片。用到的是Handler.ashx这个一般处理程序来提取图片然后绑定,首先我们新建一个Handler.ashx,然后在 public void ProcessRequest (HttpContext context)方法下写如下代码:

public void ProcessRequest (HttpContext context)

{

int id = int.Parse(context.Request.QueryString["id"]);

SqlConnection conn = new SqlConnection("server=.;u);

SqlCommand cmd = new SqlCommand ("select imagedata from myimage where , conn);

cmd.Parameters.Add("@id", SqlDbType.Int);

cmd.Parameters["@id"].Value = id;

conn.Open();

SqlDataReader dr = cmd.ExecuteReader();

if (dr.Read())

{

context.Response.BinaryWrite((byte[])dr["imagedata"]);

}

dr.Close();

}

这样我们新建一个WEB网页,在里面加一个GridView,用来绑定:

<asp:GridView runat="server"

DataSource>

<Columns>

<asp:TemplateField HeaderText="图片">

<ItemTemplate>

<asp:Image runat="server" ImageUrl ='<%# "Handler.ashx?

) %>' />

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

这样可以用GridView显示多幅图片。

我们也可以用其他的方法显示图片,还有其他的方法,其他好友若有其他的方法,留言跟我联系探讨!