在 ADO.NET 應用程式中新增資料來源 (.NET Framework)

注意

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

注意

本文所述的功能適用於 .NET Framework Windows Forms 和 WPF 開發。 WPF 和 Windows Forms 的 .NET Core 開發不支援這些功能。

在 Visual Studio 中 .NET 資料工具的內容中,資料來源一詞是指連接到資料存放區,並將資料提供給 .NET 應用程式的 .NET 物件。 Visual Studio 設計工具可以取用資料來源的輸出,以在從 [資料來源] 視窗中拖放資料庫物件時產生將資料繫結至表單的樣板程式碼。 這種資料來源可以是:

  • Entity Framework 模型中與某種資料庫相關聯的類別。

  • 與某種資料庫相關聯的資料集。

  • 表示網路服務,例如 Windows Communication Foundation (WCF) 資料服務或 REST 服務的類別。

  • 表示 SharePoint 服務的類別。

  • 方案中的類別或集合。

注意

如果您未使用資料繫結功能、資料集、Entity Framework、LINQ to SQL、WCF 或 SharePoint,則「資料來源」的概念不適用。 只要使用 SQLCommand 物件直接連線到資料庫,並直接與資料庫通訊。

您可以使用 Windows Forms 或 Windows Presentation Foundation 應用程式中的 [資料來源組態精靈] 來建立和編輯資料來源。 針對 Entity Framework,請先建立您的實體類別,然後選取 [專案]> [加入新資料來源] 來啟動精靈 (本文稍後將詳細描述)。

資料來源組態精靈

資料來源視窗

建立資料來源之後,它會出現在 [資料來源] 工具視窗中。

提示

若要開啟 [資料來源] 視窗,請確定您的專案已開啟,然後按 Shift+Alt+D,或選擇 [檢視]> [其他視窗]> [Windows 資料來源]

在以 .NET Framework (而非 .NET Core 或 .NET 5 或更新版本) 為目標的 Windows Forms 專案中,您可以將資料來源從 [資料來源] 視窗拖曳至表單設計介面或控制項。 如果您拖曳資料表,則會取得資料表的 BindingNavigatorDataGridView。 如果您拖曳個別資料行,則會取得 BindingNavigator 和 Label,以及該資料行的 TextBox。 拖曳資料行以取得資料表的完整資料檢視表單。 這些動作會導致產生樣板程式碼,以顯示來自資料存放區的資料。

下圖顯示已拖曳至 Windows 表單上的資料集。 如果您在應用程式上選取 F5,則來自基礎資料庫的資料會出現在表單的控制項中。

螢幕擷取畫面顯示資料來源拖移操作。

螢幕擷取畫面顯示資料來源拖移操作。

資料庫或資料庫檔案的資料來源

您可以建立資料集或 Entity Framework 模型,以作為資料庫或資料庫檔案的資料來源。

資料集

若要建立資料集作為資料來源,請選取 [專案]> [加入新資料來源],以執行 [資料來源組態精靈]。 選擇 [資料庫] 資料來源類型,然後遵循提示來指定新的或現有的資料庫連接,或資料庫檔案。

實體類別

若要建立 Entity Framework 模型作為資料來源:

  1. 執行 [實體資料模型精靈] 來建立實體類別。 選取 [專案]> [加入新項目]> [ADO.NET 實體資料模型]

    新的 Entity Framework 模型專案項目

  2. 選擇您想要產生模型的方法。

    實體資料模型精靈

  3. 將模型加入為資料來源。 當您選擇 [物件] 類別時,產生的類別會出現在 [資料來源組態精靈] 中。

    具有實體類別的資料來源設定精靈

服務的資料來源

若要從服務建立資料來源,請執行 [資料來源組態精靈],然後選擇 [服務] 資料來源類型。 此動作只是 [加入服務參考] 對話方塊的捷徑,您也可以在方案總管中的專案上按一下滑鼠右鍵,然後選取 [加入服務參考]

從服務建立資料來源時,Visual Studio 會將服務參考新增至您的專案。 Visual Studio 也會建立與服務傳回的物件對應的 Proxy 物件。 例如,傳回資料集的服務會在您的專案中以資料集形式呈現;傳回特定類型的服務會在您的專案中以傳回的類型形式呈現。

您可以從下列服務類型建立資料來源:

  • WCF Data Services

  • WCF 服務

  • Web 服務

    注意

    [資料來源] 視窗中所顯示的項目,取決於服務所傳回的資料。 部分服務所提供的資訊可能不足,無法供 [資料來源組態精靈] 建立可繫結的物件。 例如,如果服務傳回不具類型的資料集,在完成精靈時,[資料來源] 視窗中不會顯示任何項目。 這是因為不具類型的資料集不提供結構描述,因此精靈沒有足夠的資訊來建立資料來源。

物件的資料來源

您可以從任何公開一或多個公用屬性的物件建立資料來源,方法是執行 [資料來源組態精靈],然後選取 [物件] 資料來源類型。 物件的所有公用屬性都會顯示在 [資料來源] 視窗中。 如果您使用 Entity Framework 並已產生模型,則可以在其中找到用於您的應用程式資料來源的實體類別。

在 [選取資料物件] 頁面上,展開樹狀檢視中的節點,以找出您要繫結的物件。 樹狀檢視包含您的專案的節點,以及專案所參考的組件和其他專案的節點。

如果您想要繫結至未出現在樹狀檢視的組件或專案中的物件,請按一下 [加入參考],並使用 [加入參考] 對話方塊來加入元件或專案的參考。 加入參考之後,組件或專案會加入至樹狀檢視。

注意

可能需要在物件出現在樹狀檢視之前,先組建包含物件的專案。

注意

若要支援拖放資料繫結,實作 ITypedListIListSource 介面的物件必須有預設建構函式。 否則,Visual Studio 無法具現化資料來源物件,而且當您將項目拖曳至設計介面時,它會顯示錯誤。

SharePoint 清單的資料來源

您可以從 SharePoint 清單建立資料來源,方法是執行 [資料來源組態精靈],然後選取 SharePoint 資料來源類型。 SharePoint 會透過 WCF Data Services 公開資料,因此建立 SharePoint 資料來源與從服務建立資料來源相同。 選取 [資料來源設定精靈] 中的 [SharePoint] 項目會開啟 [加入服務參考] 對話框,可以在其中透過指向 SharePoint 伺服器來連接到 SharePoint 資料服務。 此動作需要 SharePoint SDK。