ado.net存取word及excel

 blob表

  3 id int 4 0

  0 name char 50 1

  0 blob image 16 1

  0 type char 60 1

  saveFile.aspx.cs

  PRivate void Button1_Click(object sender, System.EventArgs e)

  {

  Stream imgdatastream = File1.PostedFile.InputStream;

  int imgdatalen = File1.PostedFile.ContentLength;

  string imgtype = File1.PostedFile.ContentType;

  string name = this.getFileNameByURL(this.File1.PostedFile.FileName);

  byte[] imgdata = new byte[imgdatalen];

  int n = imgdatastream.Read(imgdata,0,imgdatalen);

  string connstr = "workstation id=OVERMIND;packet size=4096;user id=sa;passWord=sa;data source=OVERMIND;persist security info=False;initial catalog=wztj";

  SqlConnection connection = new SqlConnection(connstr);

  SqlCommand command = new SqlCommand("INSERT INTO blob(name,type,blob) VALUES ( @imgtitle, @type,@blob )", connection );

  SqlParameter paramTitle = new SqlParameter("@imgtitle", SqlDbType.VarChar,50 );

  paramTitle.Value = name;

  command.Parameters.Add(paramTitle);

  SqlParameter paramData = new SqlParameter( "@blob", SqlDbType.Image );

  paramData.Value = imgdata;

  command.Parameters.Add( paramData );

  SqlParameter paramType = new SqlParameter( "@type", SqlDbType.VarChar,50 );

  paramType.Value = imgtype;

  command.Parameters.Add( paramType );

  wztj.debug.TestSQL.TraceErrorSql("INSERT INTO blob(name,type,blob) VALUES ( @imgtitle, @type,@blob )",command.Parameters);

  connection.Open();

  int numRowsAffected = command.ExecuteNonQuery();

  connection.Close();

  }

  listFile.aspx//这个东西主要用来列表,把已经有的东西列出来

  <asp:HyperLinkColumn DataNavigateUrlField="id" HeaderText="产品名称" DataNavigateUrlFormatString="./getFile.aspx?ID={0}" DataTextField="name" DataTextFormatString="{0}" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="160px">

  listFile.aspx.cs

  string connstr="workstation id=OVERMIND;packet size=4096;user id=sa;password=sa;data source=OVERMIND;persist security info=False;initial catalog=wztj";

  SqlConnection connection = new SqlConnection(connstr);

  SqlCommand command = new SqlCommand("select * from blob", connection );

  connection.Open();

  SqlDataAdapter adaptor = new SqlDataAdapter(command);

  DataSet ds = new DataSet();

  adaptor.Fill(ds,"blob");

  connection.Close();

  this.DataGrid1.DataSource=ds.Tables["blob"].DefaultView;

  this.DataGrid1.DataBind();

  getFile.aspx.cs//这个文件比较重要负责把村道数据库里面的文件,按照格式,按照名称,给传输出来

  private void Page_Load(object sender, System.EventArgs e)

  {

  string imgid =this.Request.QueryString.Get("ID");

  //Request.QueryString["imgid"];

  string connstr="workstation id=OVERMIND;packet size=4096;user id=sa;password=sa;data source=OVERMIND;persist security info=False;initial catalog=wztj";

  string sql="SELECT name,blob, type FROM blob WHERE id = " + imgid;

  SqlConnection connection = new SqlConnection(connstr);

  SqlCommand command = new SqlCommand(sql, connection);

  connection.Open();

  SqlDataReader dr = command.ExecuteReader();

  if(dr.Read())

  {

  Response.Clear();

  Response.Buffer= true;

  Response.Charset="GB2312";

  Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文

  //Response.ContentType = "application/ms-word";//设置输出文件类型为word文件。

  Response.ContentType = dr["type"].ToString();

  Response.BinaryWrite( (byte[]) dr["blob"] );

  string FileName = dr["name"].ToString()。Trim();

  FileName=System.Web.HttpUtility.UrlEncode(FileName,System.Text.Encoding.UTF8 );

  Response.AppendHeader("Content-Disposition", "attachment;filename="+FileName);

  }

  connection.Close();

  }

  这里要说的有两点,第一,就是把文件的名称getFile.aspx变成我们想要的名称。

  Response.AppendHeader("Content-Disposition", "attachment;filename="+FileName);

  第二,就是把指定的名称变成我们想要的值,是标准的中文,而不是中文的乱码。

  FileName=System.Web.HttpUtility.UrlEncode(FileName,System.Text.Encoding.UTF8 );

时间: 2024-12-10 00:21:59

ado.net存取word及excel的相关文章

使用java技术在IE浏览器中打开WORD、EXCEL、PDF和TXT文件

问题描述 使用java技术在IE浏览器中打开WORD.EXCEL.PDF和TXT文件 #使用java技术在IE浏览器中打开WORD.EXCEL.PDF和TXT文件 解决方案 http://www.cnblogs.com/zhwl/p/3757069.htmlhttp://wenku.baidu.com/link?url=SfOc2hl0hB-xo9PhjQfXPLemBgg1aj1fV54AW39sk0cJ8_AgCc1_6hb6Lx5aQCF44ILHhn23dyenpOEiBcqJ3Qo1r

让Word和Excel表格完成选择录入

电脑及各类应用软件从诞生的那一刻起,就确定了为人类减轻劳动负担的宗旨,但如果操作软硬件的人不熟悉其功能,减轻负担的宗旨也就成为空谈.例如,使用Word和Excel制作明细表时需要重复录入部门.职称或学历等内容.此时,不论是逐一录入还是复制粘贴,都是一项即耗时又费力的工作.如何利用软件的自身功能从繁重的工作中摆脱出来呢?本篇文章将给你满意的答案. 我们在使用Word和Excel制作表格时,可以为表格制作一个下拉列表,在遇到需重复录入的内容时,只要用鼠标单击所需的选项,即可轻松完成录入.下面笔者将分

如何用ASP创建Word与Excel文档

创建|word|excel 怎样通过ASP创建简易的OFFICE文档呢?快捷的生成word或excel文档进行办公应用处理!下面我们来详细讲解. ASP具备动态输出任一Office应用程序文件格式的功能.在开始编写代码之前,我们首先需要做的就是设置正确的文件类型,因为浏览器需要知道如何处理文件.第二步是编辑文件名称,我们可以使用HTML和CSS来创建Word文档或Excel文档的样式.      下面这段例子代码可用于在线创建Word文档. 以下是代码:<% Response.ContentTy

使用jsp实现word、excel格式报表打印

excel|js|word|报表打印 因为ms word和excel的文档都支持html文本格式,因此可以先用word或excel做好模版,另存为Web页,然后将该html改成jsp,将数据部分动态填入即可,不用很辛苦的调整格式 word页面只要在jsp头设置如下指令:<%@page contentType="application/msword;charset=GBK" %> excel如下:<%@page contentType="application

ASP+模板生成Word、Excel、静态页

用模板生成Excel.Word最大优点:    Word.Excel文档样式易于控制和调整,以往用Excel.Application来生成Excel.Word,需要写很多代码来控制排版的样式,用模版几乎不受任何限制,只需要打开word或Excel,编辑文档,选择"文件->另存为web页",即可方便的做好模板 ,用office生成的模板要比直接在DW中做好模板更加符合office偏好,生成后文件样式可与原word.Excel格式99%一样,因此建议大家用office(office9

如何把Word及Excel文件导入Coreldraw

如果是将简单的word,excel文件置入到Coreldraw,直接复制粘贴即可.如果word,excel文件中包含格式和图表,安装Windows自带的虚拟打印机即可解决.步骤如下: 1.先打开:控制面板--打印机和传真--添加打印机: 2.按下一步--选"连接到此计算机的本地打印机",不选"自动检测": 3.按下一步--选厂商Linobronic ,再选Linobronic530-RIP 30 v52.3.然后按下一步,到完成. 安装完Windows自带的虚拟打印

教你破解Word与Excel的文档密码

经常和办公软件打交道的人肯定知道,如果把加密文档的密码忘了就相当于将这个文件报废了,那将会是一件多么可怕的事情.但人类是万能的,今天就为大家介绍一款软件,可以松破解Word和Excel密码,解您后顾之忧.这个工具就是Office Password Remover. 它可以在很短的时间内破解Word和Excel文档的密码,经过测试最多不超过5秒.使用本软件时需要连接到Internet,因为要给该软件的服务器发送数据并解密.不过大家可以放心,本软件不会泄露任何个人隐私. 使用方法: 首先运行解压好的

将DBGrid中的数据导出到Word和Excel

昨天ccrun刚写了将ListView中内容导出到Word文档和Excel文档的一篇文章,今天写程序凑巧用到了将DBGrid中数据导出到Office的功能,干脆再写个兄弟版的函数出来,DBGrid2Word和DBGrid2Excel,分别实现将DBGrid中数据导出到Word和Excel文档.需要注意的是DBGrid中的数据并不代码数据库中所有的数据,因为数据集在打开的时候有可能进行了筛选,取决于使用者如何打开这个数据集,总之就是DBGrid中显示多少数据,就导出多少.看在写代码很辛苦的份上,请

在DELPHI程序中使用ADO对象存取ODBC数据

作为一个ASP爱好者,笔者经常在ASP页面中使用ADO对象操作ODBC数据库,觉得用ASP创建WEB应用系统确定挺方便的.虽然在编程生涯中,笔者更喜欢Borland系列产品,对微软产品有点排斥,对ASP却是例外.某天,灵机一动,ADO对象是一个标准OLE对象,如果在DELPHI应用程序中能利用ADO操作数据库,应该挺不错.尤其在用DELPHI做网络数据库应用程序时,如果所在的WEB站点是WINNT站点并且支持ASP页面,就可以用ADO对象访问ODBC数据库,而不用把那么大的BDE再上载到站点上去