2011年2月15日 星期二

2-11 建立與使用SQL Server Express資料庫

        除了ASP.NET的開發工具VWD(Visual Web Developer0之外,SQL Server也有Express版本,在您安裝了隨著VWD所附的SQL Server Express版本之後,即可提供這樣的功能:

        您可以在專案中直接建立SQL Server Express資料庫,並且透過ASP.NET的控制項SqlDataSource來操控它,和正式版的功能沒什麼太大的差別(只是限制多了點、速度慢了點…)

2-11-1 如何建立資料庫

 

        更有趣的是,VS2005(VWD)可以直接在專案中建立資料庫,並且直接使用。在ASP.NET 2.0的專案中,『app_』開頭的資料夾名稱是有意義的,其中一個就是『App_Data』,您可以在任何一個新增的專案中看到它:
        您在這個資料夾底下,按下滑鼠右鍵,點選『加入新項目』,就可以在App_Data中加入一個SQL Server Express資料庫:
        建立完成之後,會在App_Data底下看到這個資料庫:

2-11-2 如何建立資料表

 

        接著,我們來建立資料表,當您Double-Click剛建立好的.mdf檔案之後,會出現『資料庫總管』視窗,您可以在『資料表』項目下,按滑鼠右鍵,點選『加入新的資料表』:
        接著,會出現底下的畫面,這個畫面您應該會有點是似曾相似的感覺,與Access的資料欄位新增模式非常接近,也有點像過去SQL Server 2000Enterprise Manager畫面:
        請特別注意一個部分,您一定要針對資料表設計『主索引鍵』(表示此欄位用來存放可以區隔每筆記錄的唯一值)

說明:
        為何需要設定主索引鍵?這是因為在後面我們介紹的DataSourceFormViewDetailsViewGridViews等控制項,都需要主索引鍵,以區分每一筆記錄(也就是記錄編號啦)。這樣在FormViewDetailsViewGridViews等資料繫結控制項中,才可以自動刪除、修改資料庫中資料錄,對整個資料庫的維繫與運作也較為理想。


        您可以用選單上的『設定主索引鍵』按鈕來設定欄位:
        除了新增資料表之外,您也可以新增一個View(檢視表)
        設計View的方式也與我們在Access裡面建立的方式雷同:
        現在,透過Visual Studio您也可以輕鬆的在專案中建立資料表與檢視表了。讓您的整個專案開發變的更順暢。

2-11-3 如何使用資料庫

 

        剛才建立好的資料庫,要怎麼使用呢?

        這個資料庫是以『檔案』的型式存在的,因此您的開發環境中,不需要真的建立一個正式版的SQL Server 資料庫,您在開發專案的時候,只需要透過SqlDataSource就可以使用此資料表:
        如上圖,您可以在SqlDataSourceSmartTag上面,點選『設定資料來源』,則可以看到底下畫面:

        接著,您可以設定要抓取的資料表,即可順利使用此資料庫:

        實際上操作資料庫的部分,您可以參考後面的章節,我們將會有更詳細的說明與介紹。
說明:
        您如果直接將Access.mdb資料庫檔案,拖曳到App_Data資料夾後,同樣的可以利用AccessDataSource抓取到專案的中的.mdb資料庫,透過類似的方式存取。如果您用了Access,則將來佈署到Server端之後,Server端必須安裝有MDAC2.6或以上的版本。如果您用了SQL Server 2005 Express的資料庫,Server端則必須安裝有SQL Server 2005 Express的版本。

2-11-4 關於ASPNETDB.MDF

        當您使用到了Login控制項(MembeShiproles)ProfileWebParts…等功能時,您會發現,專案中自動產生了這個資料庫:
        這個由系統自動產生的資料庫,內建了與ASP.NET 2.0重要機制相關的資料表,如果您在專案中使用到了上述功能,請注意務必在正式機上面也要安裝SQL Server 2005 Expres,否則上面的所有功能都無法使用。當然,佈署到正式環境時,也必須將這個資料庫一併複製佈署。

2-11-5 使用SQL Server Expres資料庫的優劣

 

        既然,ASP.NET 2.0MemberShipRoles、登入相關機制、ProfileWebParts都使用了預設的資料庫,是否代表我們都應該使用SQL Server 2005 Express呢?
        原則上它是一個堪用的解決方案,但是您大概也知到,微軟的免費產品多半會有一些限制,因此您在實際使用SQL Server 2005 Expres存取大量資料時,一定會發現它慢到不行。
此外,它的儲存容量也是有限制的,而且無法在遠端使用,也就是說,您無法將資料庫獨立在另一個主機上,必須跟IIS在同一台機器上。(所以APDB是在同一台的)
        開發中小型專案,其實您不妨考慮用這個免錢的版本,但是當您需要大量的資料存取與運算時,SQL Server 2005 Expres就不是一個很好的選擇了。

 

沒有留言:

張貼留言