以前真没有这么想过,将图片存为ole二进制的形式,放入到数据库中去,只有在学校的时候这样处理过数据信息;
当时也没有想那么多,只是为了知道这个东西及会用.
显示一个放到一个页面上还真知道怎么搞的,如果显示一个集合放到Repeater中呢?说实在的,有点不知道怎么搞了;
今天不得不这样搞了,因为数据存放的全是ole的类型,出于无奈只好试试(用显示一个图片的方法);
真是像我们头说的那样,试试吧,反正试试也不要钱,呵呵,自己一试,还真行!
动手是非常重要的呀,呵呵
加油
代码如下1.aspx
<asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <table> <tr> <td>ID</td> <td>Name</td> <td>Img</td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%# Eval("ID") %></td> <td><%# Eval("ImageName") %></td> <td> <img alt="" src="Default2.aspx?id=<%# Eval("ID") %>" width="100" height="100" /> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater>
1.aspx.cs
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string strComm = "SELECT * FROM tb_Image "; DataSet ds = AccHelper.Query(strComm); Repeater1.DataSource = ds.Tables[0].DefaultView; Repeater1.DataBind(); } }
Default12.aspx.cs代码如下:
protected void Page_Load(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Request.QueryString["id"])) { int a = Convert.ToInt32(Request.QueryString["id"].Trim()); string strComm = "SELECT ImageByte FROM tb_Image WHERE id=" + a + " "; OleDbDataReader dr = AccHelper.ExecuteReader(strComm); while (dr.Read()) { byte[] image = (byte[])dr.GetValue(0); Response.Clear(); Response.BinaryWrite(image); } } }
便可实现集合的数据显示!
源码下载