摘 要: 在開發(fā)系統(tǒng)軟件過程中,經(jīng)常需要對(duì)多種類型文件進(jìn)行上傳和讀取操作,通常采用兩種方法來存儲(chǔ)不同類別的文件。文中對(duì)比了這兩種方法的優(yōu)缺點(diǎn),并采用了基于ASP.NET和SQL Server數(shù)據(jù)庫平臺(tái)將不同類型的數(shù)據(jù)保存在數(shù)據(jù)庫中的方法,詳細(xì)介紹了如何在此平臺(tái)下進(jìn)行不同類型數(shù)據(jù)的上傳和讀取,給出了SQL數(shù)據(jù)結(jié)構(gòu)及實(shí)現(xiàn)代碼。
關(guān)鍵詞: ASP.NET; SQL Server; 二進(jìn)制; 上傳與讀取
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2013)03-29-03
0 引言
在開發(fā)系統(tǒng)軟件過程中,經(jīng)常會(huì)遇到需要存儲(chǔ)各種類型的數(shù)據(jù),如不同類型的文檔、圖片、音頻數(shù)據(jù)等。我們通常采用兩種方法來存儲(chǔ)這些不同類型數(shù)據(jù):把文件保存在服務(wù)器的文件系統(tǒng)中,而把文件名保存在數(shù)據(jù)庫字段中;或直接保存在數(shù)據(jù)庫的字段中。
如果把文件保存在服務(wù)器的文件系統(tǒng)中,而把文件名保存在數(shù)據(jù)庫字段中,這種方法比較簡單;如果把文件名保存在數(shù)據(jù)庫中則會(huì)需要編寫更多的代碼,這種方法修改數(shù)據(jù)不需要與數(shù)據(jù)庫打交道,可以直接更改文件。由于后者并沒有真正把數(shù)據(jù)保存在數(shù)據(jù)庫中字段中,使用中則會(huì)遇到很多問題:有悖于數(shù)據(jù)的完整性規(guī)則,直接保存在硬盤上的文件容易被誤操作而刪除;另外,使用文件系統(tǒng),一旦操作系統(tǒng)被非法用戶訪問就會(huì)不要授權(quán)而直接訪問數(shù)據(jù)文件。如果把數(shù)據(jù)保存在數(shù)據(jù)庫中,通常對(duì)數(shù)據(jù)庫的安全性要求較高,對(duì)數(shù)據(jù)的訪問和修改需要授權(quán)。
我們采用將數(shù)據(jù)保存在數(shù)據(jù)庫的字段中的方法。所采用的數(shù)據(jù)庫為SQL Server2000。SQL Server2000數(shù)據(jù)庫供了一種image的數(shù)據(jù)類型,可以用來存放大容量類型數(shù)據(jù),最大容量為2GB,能夠存放大量的不同類型數(shù)據(jù)。開發(fā)平臺(tái)為VS.NET2005,開發(fā)工具使用ASP.NET,編程語言采用C#語言。本文介紹了基于ASP.NET和SQL Server2000情況下將數(shù)據(jù)直接存儲(chǔ)在數(shù)據(jù)庫內(nèi)的不同類型文件的上傳和讀取的具體實(shí)現(xiàn)過程。
1 數(shù)據(jù)庫設(shè)計(jì)
1.1 數(shù)據(jù)庫序列對(duì)象
為了實(shí)現(xiàn)ID的自動(dòng)增加,建立數(shù)據(jù)庫序列對(duì)象如下:
標(biāo)識(shí):是
標(biāo)識(shí)種子:1
標(biāo)識(shí)遞增量:1
1.2 表的設(shè)計(jì)
數(shù)據(jù)表的設(shè)計(jì)如表1所示。
2 文件的上傳
2.1 上傳界面
上傳界面如圖1所示。
2.2 文件的上傳
4 結(jié)束語
當(dāng)開發(fā)系統(tǒng)軟件需要上傳和讀取二進(jìn)制數(shù)據(jù)時(shí),我們需要考慮采用何種方法保存數(shù)據(jù)。如果我們把文件存儲(chǔ)在數(shù)據(jù)庫中,那么就需要懂得更多的數(shù)據(jù)知識(shí)。在本文中,我們分析了基于ASP.NET和SQL Server 2000情況下將不同類型數(shù)據(jù)保存到數(shù)據(jù)庫中,以及如何對(duì)其進(jìn)行讀取。
參考文獻(xiàn):
[1] 曹錳.C#與ASP.NET程序設(shè)計(jì)[M].西安交通大學(xué)出版社,2005.
[2] 歐立奇.Visual C#.NET案例開發(fā)集錦[M].電子工業(yè)出版社,2005.
[3] 童愛紅.Visual C#.NET應(yīng)用教程[M].清華大學(xué)出版社,2004.
[4] 劉曉華.SQL Server 2000數(shù)據(jù)庫應(yīng)用[M].電子工業(yè)出版社,2003.
[5] 王華杰.精通C#數(shù)據(jù)庫開發(fā)[M].清華大學(xué)出版社,2002.