asp.net(c#)从数据库里读取图片并显示到页面
2012-12-19 15:19
851 查看
这里我就不讲怎么读取第一种的方法了,因为太简单了,只是读取路径出来再将路径赋给你想要绑定的控件上就可以了。这里我只是单独讲一下,怎么读取二进制流的图片。
为了简单点讲,我就只是在页面显示一张图片。在page_load()事件里写上如下代码:
//连接数据库
SqlConnection cn= newSqlConnection("server=.;uid=sa;pwd=****;database=za");
//这里就是从数据库提取id为1的数据,这里显得硬编码了,只是为了简单,你可以传值过来让其获值
SqlCommand cm = new SqlCommand("select imagedata from myimage whereid=1"conn1);
cn.Open();
SqlDataReaderdr = 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)方法下写如下代码:
publicvoid ProcessRequest (HttpContext context)
{
int id = int.Parse(context.Request.QueryString["id"]);
SqlConnection conn = newSqlConnection("server=.;uid=sa;pwd=****;database=za");
SqlCommand cmd = new SqlCommand ("select imagedata from myimagewhere
id=@id", 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 ID="GridView1" runat="server"
DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateFieldHeaderText="图片">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# "Handler.ashx?
id="+eval_r("id") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
这样可以用GridView显示多幅图片。
我们也可以用其他的方法显示图片,还有其他的方法,其他好友若有其他的方法,留言跟我联系探讨!
为了简单点讲,我就只是在页面显示一张图片。在page_load()事件里写上如下代码:
//连接数据库
SqlConnection cn= newSqlConnection("server=.;uid=sa;pwd=****;database=za");
//这里就是从数据库提取id为1的数据,这里显得硬编码了,只是为了简单,你可以传值过来让其获值
SqlCommand cm = new SqlCommand("select imagedata from myimage whereid=1"conn1);
cn.Open();
SqlDataReaderdr = 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)方法下写如下代码:
publicvoid ProcessRequest (HttpContext context)
{
int id = int.Parse(context.Request.QueryString["id"]);
SqlConnection conn = newSqlConnection("server=.;uid=sa;pwd=****;database=za");
SqlCommand cmd = new SqlCommand ("select imagedata from myimagewhere
id=@id", 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 ID="GridView1" runat="server"
DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateFieldHeaderText="图片">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# "Handler.ashx?
id="+eval_r("id") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
这样可以用GridView显示多幅图片。
我们也可以用其他的方法显示图片,还有其他的方法,其他好友若有其他的方法,留言跟我联系探讨!
相关文章推荐
- asp.net(c#)从数据库里读取图片并显示到页面
- Asp.net 2.0(C#)图片存储到数据库和从数据库读取显示
- Asp.net 中图片存储数据库以及页面读取显示通用方法详解-附源码下载
- Asp.net中图片存储数据库以及页面读取显示通用方法详解-附源码下载
- Asp.net中图片存储数据库以及页面读取显示通用方法详解-附源码下载
- Asp.net中图片存储数据库以及页面读取显示通用方法详解
- Asp.net 中图片存储数据库以及页面读取显示通用方法详解
- Asp.net 2.0(C#)图片存储到数据库和从数据库读取显示
- Asp.net中图片存储数据库以及页面读取显示通用方法详解
- Asp.net 2.0(C#)图片存储到数据库和从数据库读取显示
- Asp.net 2.0(C#)图片存储到数据库和从数据库读取显示
- Asp.net 2.0(C#)图片存储到数据库和从数据库读取显示
- Asp.net中图片存储数据库以及页面读取显示通用方法详解
- 从ORACLE中读取图片并在asp.net页面中显示
- ASP.NET 用读取二进制代码的方法在页面上显示指定图片。
- asp.net 图片批量上传预览,在Silverlight页面中读取并滚动显示
- ASP.NET 上传图片至数据库并读取图片显示--二进制流方式
- ASP.NET 用读取二进制代码的方法在页面上显示指定图片。
- ASP.NET 上传图片至数据库并读取图片显示
- ASP.NET读取网络图片并在页面上显示