孫偉
摘要:隨著個人手機(jī)相機(jī)普及,分享好的照片和朋友交流已成為很多人的需求。利用Asp.Net動態(tài)網(wǎng)頁技術(shù),使用Ado.net數(shù)據(jù)庫和DataList控件可以快速實現(xiàn)此功能。DataList控件是數(shù)據(jù)庫綁定控件,可以自定義的格式顯示各種數(shù)據(jù)源的字段,用戶可以靈活的構(gòu)建出需要的頁面。
關(guān)鍵詞:數(shù)據(jù)庫;Fileupload控件;DataList控件
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)25-0057-02
Asp.net Quickly Builds an Online Photo Sharing Site
SUN Wei
(Dept. (Teacher's college) of XiShuangBanNa Vocational and Technical College, Jinghong 666100, China)
Abstract: With the popularization of personal mobile phone cameras, sharing good photos and communicating with friends has become the demand of many people.With Asp.Net dynamic web technology, you can do this quickly using the Ado.net database and DataList controls.DataList controls are database-bound controls that display fields from a variety of data sources in a custom format, giving users the flexibility to build the required pages.
Key words: database;fileupload control;dataList control
現(xiàn)如今隨著手機(jī)相機(jī)等拍照設(shè)備的普及,分享拍到的照片已成為大多數(shù)用戶的習(xí)慣,而使用Asp.net加上數(shù)據(jù)庫,就能快速搭建一個可供用戶分享照片的網(wǎng)站。
網(wǎng)站由一個網(wǎng)頁一個數(shù)據(jù)庫文件和一個上傳圖片存放文件夾組成,其功能分別如下:
首頁提供瀏覽圖片上傳圖片管理圖片功能。數(shù)據(jù)庫文件存放上傳的圖片文件名,以供首頁讀取。上傳圖片文件夾用于存放上傳的圖片文件。數(shù)據(jù)庫翻用sqlserver數(shù)據(jù)庫,只有一張表Tb1,其中兩個字段,一個字段為id字段、主鍵、類型為bigint、設(shè)置標(biāo)識規(guī)范增量種子為1,讓其自動增加,用來記錄上傳圖片的序號;一個字段為mz類型為varchar(50),用來記錄上傳圖片名。
新建網(wǎng)站,在網(wǎng)站根目錄下web.config配置信息文件中添加代碼用于連接數(shù)據(jù)庫:
首頁文件頁面部分拖入一個上傳控件Fileupload1,一個按鈕button1,一個數(shù)據(jù)控件DataList1。源代碼如下,“//”后為注釋內(nèi)容:
onitemcommand="DataList1_ItemCommand" DataKeyField="id">//設(shè)置DataList控件的控件生成事件和數(shù)據(jù)庫綁定關(guān)鍵字,樣式設(shè)置代碼略。
{DataList1.SelectedIndex = e.Item.ItemIndex;
bind();}
if (e.CommandName == "back")//返回命令
{DataList1.SelectedIndex = -1;
bind(); }
if (e.CommandName == "delete")//刪除命令
{ LinkButton lb = (LinkButton)e.Item.FindControl("LinkButton1");
if (conn.State.Equals(ConnectionState.Closed))
{ conn.Open(); }
string n = lb.Text;
SqlCommand cmd = new SqlCommand ("delete from Tb1 where mz=@mz", conn); //將數(shù)據(jù)庫中該文件名記錄刪除。
cmd.Parameters.AddWithValue("@mz",n );
cmd.ExecuteNonQuery();
conn.Close();
bind();
string s = Server.MapPath(@"img/") + n;
File.Delete(s); }}} //將上傳文件夾中該文件刪除。
程序使用Microsoft Visual Studio 2010和SQL Server 2008開發(fā),在windows7下調(diào)試成功,本程序思路很簡單,用戶可以在頁面中使用上傳控件上傳圖片,上傳時后臺代碼會自動檢測文件類型和自動更名,上傳成功后在下方DataList控件會以表格的形式顯示已上傳圖片的序號、新的文件名、圖片縮略圖及刪除按鈕,同時將新文件名寫入數(shù)據(jù)庫文件中;用戶單擊文件名可以觸發(fā)select命令,顯示大圖,在大圖窗口點擊返回可以回到原始狀態(tài);下方的刪除按鈕可以刪除圖片,經(jīng)過二次確認(rèn)后,將圖片在數(shù)據(jù)庫中的數(shù)據(jù)清空,同時用File的Delect方法將文件從硬盤中刪除。
DataList控件是.NET數(shù)據(jù)庫綁定控件中的一員,以表的方式綁定數(shù)據(jù)源,其顯示數(shù)據(jù)的格式可以在創(chuàng)建的模板中定義,能為項、交替項、選定項和編輯項創(chuàng)建模板。該控件也可以使用標(biāo)題、腳注和分隔符模板自定義整體外觀,還可以一行顯示多個數(shù)據(jù)行,具有很強(qiáng)大的靈活性,用戶可以在數(shù)據(jù)庫綁定的基礎(chǔ)上構(gòu)建出各種版式的頁面。但是DataList控件本身不支持?jǐn)?shù)據(jù)分頁,插入等,編程者需要通過自己編寫方法完成這些功能。只有認(rèn)真學(xué)習(xí)它的各種屬性事件和方法,才能在動態(tài)網(wǎng)頁制作中靈活使用DataList數(shù)據(jù)庫控件。
參考文獻(xiàn):
[1] 陳向東.ASP.NET程序設(shè)計案例教程[M].北京:清華出版社,2014.
【通聯(lián)編輯:王力】