top
Loading...
使用VS.NET2003創建數據庫圖

目錄:

引用用戶方案
創建數據庫項目
使用 Visual Studio .NET 定義數據庫表

Visual Studio .NET 2003 的眾多優勢之一是,用戶可將其用作主要的 SQL Server 編輯器來完成大多數任務。獲得目標數據庫服務器的適當權限后,您就可以輕松地使用 Visual Studio .NET 2003 創建各種數據庫、表、索引、約束條件、關系、視圖、存儲過程和功能了。Visual Studio .NET 提供了一個可供您完成上述操作的默認數據庫項目,還包括了用于創建表、觸發器、存儲過程等的大量模板,非常便于使用。最后,因為使用 Visual Studio .NET 作為 SQL Server 的編輯環境,所以還可以使用它將所有 SQL Server 腳本存儲到 Microsoft Visual SourceSafe® 中。這對于共享項目和其他需要長期維護的情況而言非常方便。

引用用戶方案

針對本系列文章中的項目 DotNetKB,我創建了 30 多個用戶方案,用于標識支持本系列文章所第 1 部分概括的應用程序所需的任務。我們將使用這些用戶方案來標識表中存儲的數據以及為管理這些數據而在運行時執行的存儲過程。下面是部分用戶方案列表。完整的列表可以從相關支持站點 User Scenarios for DotNetKB Project(英文)上找到。

1.查看按關鍵字搜索的問題列表(按日期倒序排列)
2.查看按日期排序的問題列表(按日期倒序排列)
3.查看按主題排序的問題列表(按主題的字母順序/問題的日期倒序排列)
4.查看某個特定主題的問題列表(按日期倒序排列)
5.查看無任何解答的問題列表(按日期倒序排列)
6.查看問題計數
7.查看無解答的問題計數
8.查看某個特定主題的問題計數
9.查看由某位專家解答的問題計數
10.查看某個問題及其解答列表(按解答日期倒序排列)
11.添加新問題
12.編輯現有問題
13.刪除現有問題及其相關解答

如您所見,列表中僅僅涉及到問題記錄的任務就有許多。而且您還需要處理解答、主題和專家記錄。而在實際工作中,這才剛剛開始。首先,您必須標識需要為每條記錄存儲的數據元素(問題、解答、主題和專家),還需要將結果以表格的形式組織到 SQL Server 中的數據庫中。

創建數據庫項目

首先要打開 Visual Studio .NET 2003 并創建一個新的數據庫項目。Visual Studio .NET 數據庫項目的類型目前還不太確定,因為開始新項目時它隱藏在選項列表中。但開始使用后,我想您會發現數據庫項目類型有許多優點,所以非常值得花費精力去掌握它們。

要使用 Visual Studio .NET 創建一個新的數據庫項目,需要完成以下任務:

·啟動 Visual Studio .NET,如果新建項目對話框沒有自動出現,請從主菜單中選擇 File(文件)-> New(新建)-> Project(項目)。

·當顯示 New Project(新建項目)對話框時,展開左側樹視圖列表中的 Other Projects(其他項目)文件夾,然后單擊 Database Projects(數據庫項目)文件夾。此時右側將顯示 Database Project(數據庫項目)模板。

·現在,在 Name:(名稱:)輸入框中鍵入項目名稱。在我的例子中,鍵入的是 DotNetKB_Database,不過您可以根據需要鍵入任何內容。

·然后單擊 OK(確定)按鈕,創建項目并在 Visual Studio .NET 中打開它。

·屏幕上將出現一個對話框,要求您選擇要與該項目相關聯的數據庫。此時,先單擊 Cancel(取消)。下一步將創建一個新數據庫并將其添加到您的項目中。

圖 1 所示為您創建項目時,該項目在 Visual Studio .NET 中的外觀。

圖 1:創建一個新的數據庫項目

創建要使用的新數據庫之后,可以在該數據庫與您的項目之間建立一個連接,以便在 Visual Studio .NET 2003 中對其進行操作。為此,需要完成以下任務:

·在 Solution Explorer(解決方案資源管理器)窗口中,展開您的 dotNETKB_Database 項目,以顯示 Database References(數據庫引用)項。

·在 Database References(數據庫引用)項上單擊鼠標右鍵,然后從上下文相關菜單中選擇 New Database Reference...(新建數據庫引用...),打開 Data Link Properties(數據鏈接屬性)對話框。

·輸入您在其中添加 DotNetKB 數據庫的數據庫服務器的名稱,然后輸入您的登錄憑據并從下拉菜單中選擇 DotNetKB。

·單擊 OK(確定)按鈕,將引用添加到您的項目中。

圖 2 所示為完成上述操作時對話框的外觀。

圖 2:Data Link Properties(數據鏈接屬性)對話框

至此,數據庫創建完畢并被添加為您項目的引用。下一步,定義存儲 DotNetKB 解決方案數據所需的表。

使用 Visual Studio .NET 定義數據庫表

在 Visual Studio .NET 中定義數據庫表的最簡單的方法是創建一個數據庫圖。這樣,您可以在一個類似“所見即所得”的編輯器中定義所有細節。您只需展開 Server Explorer(服務器資源管理器)中相應的樹,在 Database Diagrams(數據庫圖)項上單擊鼠標右鍵,然后從上下文相關菜單中選擇 New Database Diagram...(新建數據庫圖...),即可啟動一個新的空白圖。第一次啟動某個圖時,系統將要求您從數據庫中選擇一個表。因為您尚未創建任何表,所以可以忽略該對話框。現在,可以開始定義您的表了。

學習定義如何在系統中添加新記錄的方案,通常是了解需要存儲哪些數據的最佳途徑。有時,您需要查看諸如記錄更新甚至是報告之類的其他方案,以確保沒有遺漏其他字段。在本示例中,“添加記錄”方案就是一個很好的參考方案。

例如,以下是用于添加問題的方案:

添加新問題

向系統中添加一條新問題記錄,其中包括標題、日期/時間、指明該問題所屬類別的主題 ID 以及問題正文。有時還需要提供問題提出者姓名及其電子郵件地址。添加新問題之后,將向調用函數返回一個唯一的整數問題 ID。

重要名詞以粗體表示。閱讀方案說明時,這些名詞或表名(例如,“問題記錄”就是一個很好的例子)往往能夠表明需要存儲哪些數據。使用上述信息,您可以在數據庫圖中添加一個新表并定義所需的列。下面的示例詳細介紹了如何在數據庫圖中添加表。

在圖“surface”上單擊鼠標右鍵并從上下文相關菜單中選擇 New Table...(新建表...)。輸入 Questions(問題)作為表名,然后單擊 OK(確定)將其添加到圖中。

在 Questions(問題)表對話框中,鍵入上文所述方案中提供的字段信息。例如,Column Name(列名)= ID、Data Type(數據類型)= int、Length(長度)= 4,并取消選擇 Allow Nulls(允許為空)復選框。對該表的其余部分重復上述操作(參見圖 3)。

圖 3:Questions(問題)表

您將看到,第一列 (ID) 旁邊有一個小的金色鍵。它表示該字段是該表的主鍵字段。要設置主鍵字段,可以在列表中的列名上單擊鼠標右鍵,然后從上下文相關菜單中選擇 Primary Key(主鍵)。另外,還應將此 ID 字段設置為以增量方式自動增加的標識列。這樣,SQL Server 就可以為添加到表中的每條記錄自動生成一個唯一的整數值。要進行此設置,請在該列上單擊鼠標右鍵,從上下文相關菜單中選擇 Properties(屬性),然后在 Property Pages(屬性頁)對話框中選擇 Columns(列)選項卡。其他的操作就很容易了(參見圖 4)。

圖 4:Property Pages(屬性頁)對話框中的 Columns(列)選項卡

使用“添加主題記錄”和“添加解答記錄”方案中的信息,可以創建其他兩個表。請務必為每個表創建 ID 列,并將這些列標記為標識列和主鍵。下面的圖 5 顯示了三個已完成的表。

圖 5:三個已完成的表

您會發現,這些表都通過連接線與數據庫圖連接起來。這些連接線表明表之間存在外鍵關系。例如,Questions(問題)表中的 TopicID 列與 Topics(主題)表中的 ID 列相關聯。通過將這種關系存儲到數據庫中,您可以制定用以防止在數據庫中保存非法數據的規則。本示例中的關系規則是,Questions.TopicID 列所允許的有效值只能是 Topics.ID 列中已存在的某條記錄的值。

您可以通過將 Questions(問題)表中的 TopicID 列拖放到 Topics(主題)表中的 ID 列上,來定義這些關系。此時將出現一個對話框,顯示規則定義的詳細信息并要求您按下 OK(確定)按鈕進行確認(參見圖 6)。

圖 6:Create Relationship(創建關系)對話框

您可能會發現,Responses.QuestionID 和 Questions.ID 之間也定義了一個關系。

注意:您可能已經注意到,我們還沒有為專家定義任何表。我決定將有關專家的信息存儲在一個 XML 文件中,而不是存儲在數據庫中。這樣做的主要原因是我們可以借此討論一下如何讀寫 XML 數據,以便在同一個應用中融合 XML 數據和關系數據。我們將在下一部分中討論有關專家數據的問題。

至此,數據庫和表都已定義完畢。以上介紹了解決方案的實際數據存儲過程。但是,我們還需要了解如何在表中讀寫信息。為此,我們將定義 SQL Server 中的存儲過程。

下一篇:《使用VS.NET2003創建數據庫圖》

(責任編輯:戰瑩)

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗