关于Acess 图片存为ole类型,数据集合显示

     以前真没有这么想过,将图片存为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);
            }
        }      
    }

 

便可实现集合的数据显示!

 

源码下载

 

 

 

 

 

 

posted @ 2011-04-18 14:51  凡海雨  阅读(396)  评论(0编辑  收藏  举报