一级棒(Eachfun)
偷猫的个人主页
一级棒(Eachfun) - 编程园地 - 源码放送 - 今天算是做了点事:从ole数据导出为jpg文件
RSS订阅
今天算是做了点事:从ole数据导出为jpg文件
发表时间:2010-01-10 23:45:00 关键词:ole,导出,jpg,文件,源码

  朋友用即将跳楼的心情对我说“帮忙”,我就这样被赶上架了。
  说实话,我知道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的。

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
相关评论
  • 没这么夸张吧,哈哈,不过还是谢谢你
    person洛洛 link未填 QQ未填 email未填 时间:2010-01-17 18:20:00
1
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2011 Eachfun.Com, All Rights Reserved 一级棒网络
备案号忘了带来
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!