新建選擇ADO.NET Entity 項目進行詳細剖析
該類型的數據的插入與一般的基本SQL類型不同,不過在.net 3.5平臺上工作的程序員不需要考慮太多訪問數據庫的具體代碼,我們可以選擇ADO.NET Entity Framework和Linq to SQL,這里我們以前者為例。方法簡單介紹如下:
項目中新建,選擇ADO.NET Entity Data Model,根據向導建立到數據庫的連接,根據向導選擇數據庫中的剛才建立的表images,向導結束之后項目中會添加一個edmx類型的文件,默認的界面中會打開自動生成的實體類圖,我們在向導中選擇的所有表格都會對應一個實體類默認的名稱是與數據表相同,此處的images對應的實體類也是images,但是這樣默認使用的話會造成歧義,我們需要手動修改一下。
點擊images類在屬性對話框中將Name屬性改為image,Entity Set Name可以改為imageSet或者不改動保持images表示的是image集合,ADO.NET Entity 之后實體類圖中對應的類名也變成image了。這里假設存放圖片的數據庫名為XXX,那么生成的管理類也就是我們后面使用最多的類名為XXXEntities。
將圖片保存到SQL server數據庫中首先聲明一個image類型的變量不妨稱之為img, image img = new image();,繼而創建一個XXXEntities對象, XXXEntities XXX = new XXXEntities();
頁面showImage.aspx中放入一個Image控件,命名為Image1,由于圖片是從數據庫取來的二進制文件,因而不像使用文件ADO.NET Entity 系統時圖片都有自己的URL,我們可以直接設置其URL為圖片在網站中的路徑,解決方法如下。#t#
新建另外一個專門用于提供圖片的asp.net頁面getImage.aspx,其功能僅僅是從數據庫中讀取圖片,使用Response.BinaryWrite()的方式將圖片數據流輸出,接下來您可能已經想到了,我們將image1的URL設置為上述getImage.aspxADO.NET Entity ,如果需要根據圖片的id之類的信息進行選擇,我們為該asp.net頁面提供一個額外的id參數即可。
讀取圖片,依然使用上述的XXX實體管理類,比如獲取id為1的圖片,代碼為:
- int id = int.Parse(Request.QueryString["id"]);
- image img = XXX.imageSet.Where(i=> i.ID == id).First();
- Response.BinaryWrite(img.imageFile);
- 文章出處:DIY部落(http://www.diybl.com/course/7_databases/database_other/20090816/168697.html)