備註
類別 DataSet 和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的數據。 這些技術特別適用於可讓使用者修改數據並將變更保存回資料庫的應用程式。 雖然數據集是經過證實的成功技術,但新 .NET 應用程式的建議方法是使用 Entity Framework Core。 Entity Framework 提供更自然的方式,以表格式數據作為物件模型使用,而且具有更簡單的程序設計介面。
在 Windows 應用程式中顯示表單上的資料時,您可以從 [工具箱] 中選擇現有的控制件。 或者,如果您的應用程式需要標準控件中無法使用的功能,您可以撰寫自定義控件。 本逐步解說示範如何建立實作ComplexBindingPropertiesAttribute的控制項。 實作ComplexBindingPropertiesAttribute的控制項包含可以系結至數據的DataSource和DataMember屬性。 這類控制件類似於 DataGridView 或 ListBox。
如需控件撰寫的詳細資訊,請參閱 在設計時間開發 Windows Forms 控制件。
撰寫控件以用於數據系結案例時,您需要實作下列其中一個數據系結屬性:
| 數據系結屬性使用方式 |
|---|
| 將 DefaultBindingPropertyAttribute 實作在簡單控件上,例如 TextBox,用以顯示一列(或一個屬性)數據。 如需詳細資訊,請參閱 建立支援簡單數據系結的 Windows Forms 使用者控件。 |
| 在控制項上實施 ComplexBindingPropertiesAttribute,如同 DataGridView,用於顯示數據清單(或數據表)。 (本逐步解說頁面描述此過程。) |
| 實作於控制項,例如 LookupBindingPropertiesAttribute,這些控制項顯示數據清單(或數據表),但也需要呈現單一列或屬性。 如需詳細資訊,請參閱 建立支援查閱數據系結的 Windows Forms 使用者控件。 |
本逐步解說會建立複雜的控制項,以顯示數據表中的數據列。 此範例會使用 Customers Northwind 範例資料庫中的數據表。 複雜的使用者控制項將會在自訂控制元件中顯示DataGridView內的客戶數據表。
在本逐步解說中,您將瞭解如何:
將新的 使用者控制項 新增至您的專案。
以可視化方式設計使用者控制件。
實作
ComplexBindingProperty屬性。使用 [數據源組態精靈] 建立數據集。
在 [數據源] 視窗中設定 Customers 數據表,以使用新的複雜控制件。
將控件從 [數據源 ] 視窗拖曳至 Form1,以新增控件。
先決條件
若要完成本教學課程,您需要在 Visual Studio 中安裝的 .NET 桌面開發和資料儲存及處理工作負載。 若要安裝它們,請開啟 Visual Studio Installer,然後選擇您想要修改的 Visual Studio 版本旁的 [修改] (或 [更多>修改])。 請參閱 修改 Visual Studio。
本逐步解說使用 SQL Server Express LocalDB 和 Northwind 範例資料庫。
如果您沒有 SQL Server Express LocalDB,請從 SQL Server Express 下載頁面或透過 Visual Studio 安裝程式進行安裝。 在 Visual Studio Installer中,您可以將 SQL Server Express LocalDB 安裝為 資料儲存和處理 工作負載的一部分,或安裝為個別元件。
依照下列步驟安裝 Northwind 範例資料庫:
在 Visual Studio 中,開啟 [SQL Server 物件總管] 視窗。 (SQL Server 物件總管會安裝為 Visual Studio 安裝程式中的 資料儲存和處理 工作負載的一部分。)展開 SQL Server 節點。 以滑鼠右鍵點擊您的 LocalDB 實例,然後選取 新增查詢。
查詢編輯器視窗隨即開啟。
將 Northwind Transact-SQL 腳本 複製到剪貼簿。 此 T-SQL 腳本會從頭開始建立 Northwind 資料庫,並填入數據。
將 T-SQL 文稿貼到查詢編輯器中,然後選擇 [執行] 按鈕。
在短時間內,查詢會完成執行,並建立 Northwind 資料庫。
建立 Windows Forms 應用程式專案
第一個步驟是建立 C# 或 Visual Basic 的 Windows Forms 應用程式 專案。 將專案命名為 ComplexControlWalkthrough。
將使用者控件新增至專案
由於本逐步解說會從 使用者控件建立複雜的數據可系結控件,因此將 使用者控件 專案新增至專案:
從 [專案] 功能表中,選擇 [ 新增使用者控件]。
在 [名稱] 區域中輸入 ComplexDataGridView,然後選取 [新增]。
ComplexDataGridView 控制項會新增至 方案總管,並在設計工具中開啟。
設計 ComplexDataGridView 控制項
若要將 加入DataGridView至使用者控件,請將 從 DataGridView] 拖曳至使用者控件的設計介面。
新增必要的數據系結屬性
對於支援資料系結的複雜控制件,您可以實作 ComplexBindingPropertiesAttribute:
將 ComplexDataGridView 控件切換至程式代碼檢視。 (在 [ 檢視] 功能表上,選取 [ 程序代碼]。
將
ComplexDataGridView中的代碼取代為以下內容:using System.Windows.Forms; namespace CS { [System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")] public partial class ComplexDataGridView : UserControl { public object DataSource { get{ return dataGridView1.DataSource; } set{ dataGridView1.DataSource = value; } } public string DataMember { get{ return dataGridView1.DataMember; } set{ dataGridView1.DataMember = value; } } public ComplexDataGridView() { InitializeComponent(); } } }從 [ 建置] 功能表中,選擇 [ 建置方案]。
從資料庫建立數據源
使用 數據源組態 精靈,根據 Customers Northwind 範例資料庫中的數據表建立數據來源:
若要開啟 [數據源 ] 視窗,請在 [ 數據 ] 功能表上,按兩下 [ 顯示數據源]。
在 [ 數據源] 視窗中,選取 [ 新增數據源 ] 以啟動 [數據源組態 精靈]。
選取 [資料庫 ] 在 [選擇資料來源類型 ] 頁面上,然後選取 [下一步]。
在 [ 選擇您的數據連線 ] 頁面上,執行下列其中一項動作:
如果下拉式清單中有 Northwind 範例資料庫的數據連線可用,請選取它。
選取 [新增連線 ] 以啟動 [ 新增/修改連線 ] 對話框。
如果您的資料庫需要密碼,請選取包含敏感數據的選項,然後選取 [ 下一步]。
在 [ 將連接字串儲存至應用程式組態檔 ] 頁面上,按 [下一步]。
在 [ 選擇您的資料庫物件] 頁面上,展開 [ 數據表] 節點。
選取
Customers表格,然後選取 [完成]。NorthwindDataSet 會新增至您的專案,而
Customers數據表會出現在 [數據源] 視窗中。
將 Customers 資料表設定為使用 ComplexDataGridView 控制件
在 數據源 視窗中,您可以在將項目拖曳到窗體之前,先設定要建立的控制項。
在設計工具中,開啟 Form1。
展開 [資料源] 視窗中的 [客戶] 節點。
按兩下 [客戶] 節點上的下拉式清單箭號,然後選擇 [ 自定義]。
從 [數據 UI 自定義選項] 對話方塊中的 [相關聯控件] 清單中選取 ComplexDataGridView。
按兩下
Customers拉式清單箭號,然後從控件清單中選擇 ComplexDataGridView 。
控制項加入至表單
您可以將項目從 資料來源 視窗拖放到表單中,以建立資料繫結控制項。 將主要 [客戶] 節點從 [數據源] 視窗拖曳到窗體上。 確認 ComplexDataGridView 控制項是用來顯示資料表的數據。
執行應用程式
按 F5 以執行應用程式。
後續步驟
根據您的應用程式需求,建立支援數據系結的控件之後,您可能會想要執行幾個步驟。 一些典型的後續步驟包括:
將自定義控制項放在控制元件連結庫中,讓您可以在其他應用程式中重複使用它們。
建立支援查閱情境的控件。 如需詳細資訊,請參閱 建立支援查閱數據系結的 Windows Forms 使用者控件。