共用方式為


將 Windows Forms 控制件系結至 .NET Framework 應用程式中的數據

備註

類別 DataSet 和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的數據。 這些技術特別適用於可讓使用者修改數據並將變更保存回資料庫的應用程式。 雖然數據集是經過證實的成功技術,但新 .NET 應用程式的建議方法是使用 Entity Framework Core。 Entity Framework 提供更自然的方式,以表格式數據作為物件模型使用,而且具有更簡單的程序設計介面。

您可以將數據系結至 Windows Forms,向應用程式的使用者顯示數據。 若要建立這些數據綁定控件,請將專案從 [數據源 ] 視窗拖曳至 Visual Studio 中的 Windows Forms 設計工具。

數據源拖曳作業

小提示

如果看不到 [數據源 ] 視窗,您可以選擇 [ 檢視>其他 Windows>數據源],或按 Shift+Alt+D 來開啟它。 您必須在 Visual Studio 中開啟專案,才能看到 [數據源] 視窗。

在拖曳項目之前,您可以設定要系結的控件類型。 視您選擇數據表本身或個別數據行而定,會出現不同的值。 您也可以設定自訂值。 針對數據表, Details 表示每個數據行都會系結至個別的控件。

將數據源系結至 DataGridView

BindingSource 和 BindingNavigator 控件

BindingSource 元件有兩種用途。 首先,它會在將控件系結至數據時提供抽象層。 表單上的控制項會系結至BindingSource元件,而不是直接系結至資料來源。 其次,它可以管理物件的集合。 在BindingSource中加入一個型別會建立該型別的清單。

如需元件的詳細資訊 BindingSource ,請參閱:

BindingNavigator 控件提供使用者介面,可用來流覽 Windows 應用程式所顯示的數據。

綁定到 DataGridView 控制項中的數據

對於 DataGridView 控件,整個數據表會系結至該單一控件。 當您將 DataGridView 拖曳至表單時,也會顯示瀏覽記錄的工具帶(BindingNavigator) 。 DataSetTableAdapterBindingSourceBindingNavigator 會出現在元件匣中。 下圖也會新增 TableAdapterManager ,因為 Customers 數據表與 Orders 數據表有關聯。 這些變數全都會在自動產生的程式代碼中宣告為窗體類別中的私用成員。 填滿 DataGridView 的自動產生程式代碼位於事件處理程式中 Form_Load 。 儲存數據以更新資料庫的程式代碼位於 SaveBindingNavigator 的事件處理程式中。 您可以視需要移動或修改此程式碼。

具有 BindingNavigator 的 GridView

您可以按下每個右上角的智慧標記,自訂 DataGridViewBindingNavigator 的行為:

DataGridView 和 Binding Navigator 智慧標記

如果應用程式所需的控制項無法在 [資料源 ] 視窗中使用,您可以新增控制項。 如需詳細資訊,請參閱 將自定義控件新增至 [數據源] 視窗

您也可以將項目從 [資料來源] 視窗拖曳到已經存在於表單上的控制項,以將控制項綁定到資料。 已經綁定資料的控制項,其資料綁定會重設為最近拖曳到這個控制項的項目。 若要成為有效的拖放目標,控制項必須能夠顯示從資料來源視窗拖曳到其上的項目的基礎資料類型。 例如,將數據類型 DateTime 為的專案拖曳至 CheckBox無效,因為 CheckBox 無法顯示日期。

綁定至個別控件中的數據

當您將數據源系結至 [詳細數據] 時,數據集中的每個數據行都會系結至個別的控件。

將數據源系結至詳細數據

這很重要

請注意,在先前的圖示中,您會從 Customers 資料表的 Orders 屬性拖曳,而不是從 Orders 資料表拖曳。 藉由系結至 Customer.Orders 屬性, DataGridView 中所做的導覽命令會立即反映在詳細數據控制件中。 如果您從 Orders 數據表拖曳,控件仍會繫結至數據集,但不會與 DataGridView 同步。

下圖顯示在 [數據來源] 視窗中,當 [客戶] 資料表中的 Orders 屬性繫結到 [詳細資料] 之後,新增至表單的預設資料繫結控制項。

系結至詳細數據的訂單數據表

另請注意,每個控件都有智慧標記。 此標籤可啟用僅適用於該控制件的自訂設置。