引用Word對象庫文件
具體做法是打開菜單欄中的項(xiàng)目>添加引用>瀏覽,在打開的“選擇組件”對話框中找到MSWORD.OLB后按確定即可引入此對象庫文件,vs.net將會自動將庫文件轉(zhuǎn)化為DLL組件,這樣我們只要在源碼中創(chuàng)建該組件對象即可達(dá)到操作Word的目的!
如圖
這會自動在你的應(yīng)用程序文件夾中放置一個(gè)程序集(assembly)將COM接口邦定到Word。
上傳并存儲word文件
上傳文件時(shí)首先通過上傳控件找到所需上傳的文件,然后獲取文件的大小,最后以流的形式寫入數(shù)據(jù)庫
具體代碼為
C# 代碼 復(fù)制PRivate void Btn_OK_Click(object sender, System.EventArgs e)
{
string name=name_TextBox.Text;
//接收上傳文件
Stream fileStream=File1.PostedFile.InputStream;
//獲取上傳文件字節(jié)的大小
int length=File1.PostedFile.ContentLength;
byte[] wordData=new byte[length];
//從流中讀取字節(jié)并寫入wordData
int n=fileStream.Read(wordData,0,length);
//獲取當(dāng)前時(shí)間
DateTime time=DateTime.Now;
//連接數(shù)據(jù)庫
SqlConnection conn=new SqlConnection();
conn.ConnectionString="workstation id=TIANCHUNZHU;packet size=4096;integrated security=SSPI;data source=TIANCHUNZHU;persist security info=False;initial catalog=test";
SqlCommand cmd=new SqlCommand();
cmd.Connection=conn;
cmd.CommandText="INSERT INTO word (fileName,postTime,fileContent) values (@fileName,@postTime,@fileContent)";
SqlParameter nameParam=new SqlParameter("@fileName",System.Data.SqlDbType.VarChar,50);
nameParam.Value=name;
cmd.Parameters.Add(nameParam);
SqlParameter timeParam=new SqlParameter("@postTime",System.Data.SqlDbType.DateTime,8);
timeParam.Value=time;
cmd.Parameters.Add(timeParam);
//添加word文件
SqlParameter contentParam=new SqlParameter("@fileContent",System.Data.SqlDbType.Image); ①//見本段最后注解
contentParam.Value=wordData;
cmd.Parameters.Add(contentParam);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
說明
此處由于是Image類型文件,事先可能無法預(yù)測文件的大小,因此可不必指定size參數(shù)。如果希望控制上傳文件的大小則可以輸入size參數(shù)。如指定1000,則上傳時(shí)最大可以上傳1k的word文檔。
從數(shù)據(jù)庫中讀取數(shù)據(jù)并恢復(fù)為word文件
讀取數(shù)據(jù)時(shí)先將數(shù)據(jù)從數(shù)據(jù)庫中讀入緩沖區(qū),然后再從緩沖區(qū)寫入最終文件。因此首先要開辟一個(gè)緩沖區(qū)并設(shè)定它的大小,每當(dāng)緩沖區(qū)讀滿時(shí)就要將緩沖區(qū)內(nèi)的數(shù)據(jù)寫入文件,以清空緩沖區(qū)并繼續(xù)向緩沖區(qū)讀數(shù)據(jù),直到最后一次將緩沖區(qū)內(nèi)剩余的數(shù)據(jù)全部寫入文件,新的word文檔即可生成。
由于這一部分用到了字節(jié)流的輸入輸出操作,因此要引用System.IO命名空間
代碼
C# 代碼 復(fù)制新聞熱點(diǎn)
疑難解答
圖片精選