程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 用ado.net對word,excel進行存取

用ado.net對word,excel進行存取

編輯:.NET實例教程


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)
&nb
sp; {
   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 );

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved