朋友用即将跳楼的心情对我说“帮忙”,我就这样被赶上架了。
说实话,我知道ole数据是可以读出来的,既可以显示,也可以存起来。但是这活我没做过。朋友找到我一定是她已经碰到了N多阻碍。这些阻碍我能否过得了这是个疑问。于是我先留了个后,说“只能试试了,这事我没干过”。
最后倒是想不到的顺利,有点顺利过了头,顺序是这样的:我先从数据库里读取一条记录,Response.ContentType = "image/jpeg"; Response.BinaryWrite(...);居然成了。那就好办了,我改为File.Open,再Write一下,果然写了个文件。下一步就是把这几行代码放进循环了。
本着“程序代码归全人类所有”(电影《反托拉斯行动》台词)的信念,现将程序源码公布如下:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.OleDb;
using System.IO;
public partial class pic : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OleDbConnection c = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("\\App_Data\\dydb.mdb"));
c.Open();
OleDbCommand cmd = new OleDbCommand("select guide_img, guide_id3, guide_id from guide3", c);
OleDbDataReader rs = cmd.ExecuteReader();
while (rs.Read())
{
string id3, id, sFileName;
id3 = rs.GetString(1);
id = rs.GetString(2);
sFileName = id3 + "-" + id + ".jpg";
FileStream a = File.Open(Server.MapPath(sFileName), FileMode.Append);
a.Write((byte[])(rs[0]), 0, ((byte[])(rs[0])).Length);
a.Close();
}
}
}
话说回来,如果你的记录数量太大,最好在select里加个筛选,不然会timeout的。
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!

洛洛
未填
未填
未填
时间:2010-01-17 18:20:00