关于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);
}
}
}
便可实现集合的数据显示!