溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET怎么向SQLServer2008導(dǎo)入文件

發(fā)布時(shí)間:2021-08-18 12:43:21 來(lái)源:億速云 閱讀:92 作者:chen 欄目:數(shù)據(jù)庫(kù)

本篇內(nèi)容主要講解“ASP.NET怎么向SQLServer2008導(dǎo)入文件”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“ASP.NET怎么向SQLServer2008導(dǎo)入文件”吧!

ASP.NET向SQL Server導(dǎo)入文件主要用到FileUpload控件的FileBytes屬性。該屬性從FileUpload控件所指定的文件返回一個(gè)字節(jié)數(shù)組 。

 1.數(shù)據(jù)庫(kù)準(zhǔn)備 為了方便大家能夠理解,這里我們只設(shè)計(jì)兩個(gè)字段,一個(gè)是文件類型字段,字段名為FileType,另一個(gè)是存放文件內(nèi)容字段,字段名為FileContent。創(chuàng)建數(shù)據(jù)庫(kù) ,數(shù)據(jù)庫(kù)名為VarFile,語(yǔ)句如下: CREATE DATABASE VARFILE GO 創(chuàng)建表,表名為FileInOut,語(yǔ)句如下: USE VARFILE GO CREATE TABLE FILEINTOU ( FileType nvarchar(30) not null, FileContent varbinary(max) null ) 

2.添加控件 運(yùn)行VS2008并新建一個(gè)網(wǎng)站,在頁(yè)面Default.aspx中添加一個(gè)FileUpload控件,ID 為FileUpload1.同時(shí)添加三個(gè)Button按鈕,ID分別為fileUp和fileLoad。Text屬性分別設(shè)置為“上傳文件”和“下載文件”。 

3.添加代碼 

(1)添加命名空間,因?yàn)楹蚐QL Server數(shù)據(jù)庫(kù)連接,所以添加using System.Data.Sqlclient和using System.Data命名空間。又因?yàn)橐O(shè)置輸出流的HTTP的字符集為"gb2312"字符編碼,所以添加using System.Text命名空間。同時(shí)又因?yàn)橐褜?dǎo)出文件強(qiáng)類型化為字符串,所以添加using System.Collections.Specialized命名空間。 

(2)添加“上傳文件”按鈕的事件代碼。當(dāng)單擊“上傳文件”按鈕后,獲取FileUpload控件所選擇的文件的文件類型以及文件的字節(jié)數(shù)組插入數(shù)據(jù)庫(kù)中。切換到設(shè)計(jì)視圖,雙擊“上傳文件”按鈕,添加"上傳文件"按鈕事件代碼,代碼如下:復(fù)制代碼 代碼如下: protected void fileUp_Click(object sender,EventArgs e) { if(FileUpload1.FileName==string.Empty) { Response.Write("<script>altert(‘請(qǐng)選擇要上傳的文件')</script>"); return; } string mailto:connstr=@%22Data Source=69F638102711447\SQL2008;Initial Catalog=VarFile;Integrated Security=Ture"; //數(shù)據(jù)庫(kù)連接字符串 string the Selected=FileUpload1.FileName; //獲取上傳文件的后綴名 string extension=theSelected.Substring(theSelected.LastIndexOf(".")).ToLower(); if(CheckFileType(extension)) //如果有指定的文件類型 { string contentType=GetContentType(extension); string sqlstr="insert into FileInOut values(@FileType,@FileCount)"; //上傳文件的SQL語(yǔ)句 string sqlstrclear="truncate table FileInOut"; //清空數(shù)據(jù)庫(kù)SQL語(yǔ)句 SqlConnection con=new SqlConnection(connstr); //實(shí)例化數(shù)據(jù)庫(kù)連接對(duì)象 SqlCommand cmd=new SqlCommand(sqlstr,con); //實(shí)例化上傳文件SQL命令 SqlCommand cmdclear=new SqlCommand(sqlstrclear,con); //實(shí)例化清空數(shù)據(jù)庫(kù)SQL命令 //定義問(wèn)價(jià)類型參數(shù) cmd.Parameters.Add(new SqlParameter("@FileType”,SlqDbType.NvarChar,30)); cmd.Parameters["@FileType"].Value=contentType; //定義文件內(nèi)容參數(shù) cmd.Parameters.Add(new SqlParameter("@FileCount",SqlDbType.NVarChar,30)); //將文件轉(zhuǎn)化為字節(jié)數(shù)組作為@FileCount的值 cmd.Parameters["@FileCount"].Value=FileUpload1.FileBytes; con.Open(); cmdclear.ExecuteNonQuery(); //執(zhí)行清空數(shù)據(jù)庫(kù)命令 cmd.ExecuteNonQuery(); //執(zhí)行上傳文件命令 } }

(3)添加獲取文件類型和獲得文件導(dǎo)出方式的函數(shù)方法。首先查看所要上傳文件類型是否在指定問(wèn)價(jià)類型內(nèi),如果在,則可以直接導(dǎo)入文件,然后根據(jù)文件類型 獲取此文件導(dǎo)出方式并存放在FileType字段中,代碼如下:復(fù)制代碼 代碼如下: public static bool CheckFileType(string type) { StringDictionary sd=new StringDictionary(); //實(shí)例化集合StringDictionary類 sd.Add(".doc","application/msword"); sd.Add(".ppt","application/vnd.ms-powerpoint"); sd.Add(".xsl","application/vnd.ms-excel"); sd.Add(".rtf","application/msword"); sd.Add(".html","text/html"); sd.Add(".htm","text/html"); sd.Add(".txt","text/plain"); sd.Add(".pdf","application/pdf"); return sd.ContainsKey(type); //確定StringDictionary是否包含特定鍵 } public static string GetContentType(string extension) //獲取輸出文件方式 {StringDictionary sd=new StringDictionary(); sd.Add(".doc","application/msword"); sd.Add(".ppt","application/vnd.ms-powerpoint"); sd.Add(".xsl","application/vnd.ms-excel"); sd.Add(".rtf","application/msword"); sd.Add(".html","text/html"); sd.Add(".htm","text/html"); sd.Add(".txt","text/plain"); sd.Add(".pdf","application/pdf"); return sd[extension]; //返回對(duì)應(yīng)鍵的值 }

(4)上傳文件,選擇一個(gè)pdf文件,單擊"上傳文件"按鈕后,打開(kāi)數(shù)據(jù)庫(kù)中的FileInOut表,如圖所示可以看到。

到此,相信大家對(duì)“ASP.NET怎么向SQLServer2008導(dǎo)入文件”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI