共用方式為


建立資料庫

Microsoft 提供

下載 PDF

這是免費的 "NerdDinner" 應用程式教學課程的第 2 個步驟,詳細介紹了如何使用 ASP.NET MVC 1 建置一個小型但完整的 Web 應用程式。

步驟 2 示範為 NerdDinner 應用程式建立保存所有 Dinner 和回覆資料的資料庫的步驟。

如果使用 ASP.NET MVC 3,建議遵循 MVC 3 使用者入門MVC Music 市集教學課程。

NerdDinner 步驟 2:建立資料庫

我們將使用資料庫來儲存 NerdDinner 應用程式的所有 Dinner 和回覆資料。

下列步驟示範使用免費的 SQL Server Express 版本建立資料庫 (您可以使用 Microsoft Web Platform Installer 的 V2 輕鬆安裝)。 我們將撰寫的所有程式碼,都適用於 SQL Server Express 和完整的 SQL Server。

建立新的 SQL Server Express 資料庫

我們將從以滑鼠右鍵按一下 Web 專案開始,然後選取新增 -> 新項目功能表命令:

[方案總管] 對話方塊的螢幕擷取畫面。已選取 [新增],並醒目提示 [新項目]。

這會顯示 Visual Studio 的 [新增新項目] 對話方塊。 我們將依 [資料] 類別進行篩選,然後選取 [SQL 伺服器資料庫] 項目範本:

Visual Studio [新增新項目] 對話方塊的螢幕擷取畫面。 S Q L 伺服器資料庫已醒目提示。資料已醒目提示。

我們會將要建立的 SQL Server Express 資料庫命名為 "NerdDinner.mdf",然後按 [確定]。 Visual Studio 接著會詢問我們是否要將此檔案新增至 \App_Data 目錄 (這是已設定具有讀取和寫入安全性 ACL 的目錄):

Microsoft Visual Studio 對話方塊的螢幕擷取畫面。[是] 已醒目提示。

我們將按一下 [是],並建立新的資料庫和新增至 [方案總管]:

[方案總管] 導覽樹狀目錄的螢幕擷取畫面。Nerd Dinner dot m d f 已醒目提示和選取。

在我們的資料庫中建立資料表

我們現在有新的空白資料庫。 讓我們將一些資料表新增至其中。

方式為,瀏覽 Visual Studio 內的 [伺服器總管] 索引標籤視窗,以管理資料庫和伺服器。 儲存在應用程式 \App_Data 資料夾中的 SQL Server Express 資料庫會自動顯示在 [伺服器總管] 內。 我們可以選擇性地使用 [伺服器總管] 視窗頂端的 [連接到資料庫] 圖示,將其他 SQL Server 資料庫 (本機和遠端) 新增至清單:

[伺服器總管] 導覽樹狀目錄的螢幕擷取畫面。資料連線已展開,並醒目提示 Nerd Dinner dot m d f。

我們會將兩個資料表新增至 NerdDinner 資料庫,一個用來儲存 Dinners,另一個用來追蹤對它們的回覆接受情况。 我們可以使用滑鼠右鍵按一下資料庫內的 [資料表] 資料夾,然後選擇 [新增新資料表] 功能表命令,以建立新的資料表:

[伺服器總管] 導覽樹狀目錄的螢幕擷取畫面。資料表已展開並醒目提示。[新增新資料表] 已醒目提示。

這會開啟資料表設計工具,讓我們設定資料表的結構描述。 針對 "Dinners" 資料表,我們將新增 10 個資料行:

Nerd Dinner 對話方塊的螢幕擷取畫面。顯示資料表的結構描述。

我們希望 "DinnerID" 資料行成為資料表的唯一主索引鍵。 我們可以在 "DinnerID" 資料行上按一下滑鼠右鍵,然後選擇 [設定主索引鍵] 功能表項目來設定這個:

[Dinner ID] 功能表項目的螢幕擷取畫面。[設定主索引鍵] 功能表項目會醒目提示。

除了讓 DinnerID 成為主索引鍵之外,我們也想要將它設定為 [識別] 資料行,其值會自動遞增,因為新的資料列會新增到資料表中 (這意味著第一個插入的 Dinner 資料列的 DinnerID 為 1,第二個插入資料列的 DiningID 為 2,以此類推)。

我們可以選取 [DinnerID] 資料行,然後使用 [資料行屬性] 編輯器,將資料行上的 “(Is Identity)” 屬性設定為 [是]。 我們將使用標準識身分識別預設 (從 1 開始,並在每個新的 Dinner 資料列上遞增 1):

[資料行屬性] 索引標籤的螢幕擷取畫面。已醒目提示 [識別規格]。

接著,我們會輸入 Ctrl-S 或使用檔案 -> 儲存功能表命令來儲存資料表。 這將會提示我們命名資料表。 我們會將其命名為 "Dinners":

[選擇名稱] 對話方塊的螢幕擷取畫面。Dinners 寫在「輸入資料表名稱」方塊中。

然後,我們的新 Dinners 資料表會顯示在伺服器總管中的資料庫中。

然後,我們將重複上述步驟,並建立 [回覆] 資料表。 此資料表有 3 個資料行。 我們將 RsvpID 資料行設定為主索引鍵,並使其成為識別資料行:

Nerd Dinner 對話方塊的螢幕擷取畫面。R S V P I D 會在 [資料行] 名稱類別中醒目提示。

我們會儲存它,並命名為 [回覆]。

設定資料表之間的外部索引鍵關聯性

現在資料庫中有兩個資料表。 我們最後一個結構描述設計步驟是設定這兩個資料表之間的「一對多」關聯性,以便我們將每個 Dinner 資料列與套用至該資料表的零個或多個回覆資料列產生關聯。 若要執行此動作,我們會將回覆資料表的 [DinnerID] 資料行,設定為與 [Dinners] 資料表中的 [DinnerID] 資料行有外部索引鍵關聯性。

方式為,按兩下伺服器總管中的回覆資料表,在資料表設計工具中將其開啟。 然後,我們將選取其中 "DinnerID" 資料行,以滑鼠右鍵按一下,然後選擇 [關聯性...] 內容功能表命令:

Dinner I D 功能表項目的螢幕擷取畫面。關聯性會醒目提示。

這會顯示一個對話方塊,可用來設定資料表之間的關聯性:

[外部索引鍵關聯性] 對話方塊的螢幕擷取畫面。

我們將按一下 [新增] 按鈕,將新的關聯性新增至對話方塊。 新增關聯性之後,我們會在對話方塊右側的屬性方格中展開 [資料表和資料行規格] 樹狀結構檢視節點,然後按一下其右側的 [...] 按鈕:

[外部索引鍵關聯性] 對話方塊的螢幕擷取畫面。資料表和資料行規格會醒目提示。箭號指向其右邊的省略符號按鈕。

按一下 [...] 按鈕將會顯示另一個對話方塊,允許我們指定關聯性中涉及哪些資料表和資料行,以及允許我們命名關聯性。

我們會將 [主索引鍵資料表] 變更為 [Dinners],然後選取 Dinners 資料表內的 [DinnerID] 資料行作為主索引鍵。 我們的回覆資料表將會是外部索引鍵資料表,而 RSVP.DinnerID 資料行將會將作為外索引鍵關聯:

[資料表和資料行] 對話方塊的螢幕擷取畫面。主索引鍵資料表和外索引鍵資料表會醒目提示。

現在,回覆資料表中的每個資料列都會與 Dinner 資料表中的資料列相關聯。 如果 SQL Server 未指向有效的 Dinner 資料列,SQL Server 將會維護引用完整性,並防止我們新增回覆資料列。 如果仍有回覆資料列參考 Dinner 資料列,它也會阻止我們刪除該資料列。

將資料新增至資料表

讓我們在 Dinners 資料表中新增一些範例資料來完成。 我們可以在 [伺服器總管] 內以滑鼠右鍵按一下資料表,然後選擇 [顯示資料表資料] 命令,以將資料新增至資料表:

[伺服器總管] 的螢幕擷取畫面。[顯示資料表資料] 已醒目提示。

我們將在開始實作應用程式時,新增幾個資料列的 Dinner 資料,以供稍後使用:

Microsoft Visual Studio 內 Dinner 資料的螢幕擷取畫面。

後續步驟

我們已完成建立資料庫。 現在讓我們建立可用於查詢和更新它的模型類別。