共用方式為


逐步解說:加入驗證至資料集

更新:2007 年 11 月

這個逐步解說將示範當變更資料集中的資料時,如何驗證資料。執行資料驗證檢查的位置視應用程式的需求而定;在此逐步解說中,將會在變更個別資料行中的值時,驗證資料。此逐步解說使用 ColumnChanging 事件,以驗證可接受的值確實已輸入至資料錄中。如果此值無效,則會顯示 ErrorProvider 控制項給使用者。

此範例也將示範如何使用 [DataSet 設計工具] 來建立資料集的部分類別 (使用者可以在部分類別加入程式碼來擴充 Visual Studio 產生之資料集的功能,如果資料集重新產生,則不會被覆寫)。

注意事項:

根據目前使用的設定與版本,您所看到的對話方塊與功能表命令可能會與 [說明] 中所描述的不同。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定

逐步解說將說明的工作包括:

必要條件

若要完成這個逐步解說,您必須要有:

建立新的 Windows 應用程式

若要建立新的 Windows 應用程式專案

  1. 從 [檔案] 功能表中,建立新專案。

  2. 將專案命名為 ValidationWalkthrough。

  3. 請選取 [Windows 應用程式],並按 [確定]。如需詳細資訊,請參閱建立 Windows 架構的應用程式

    會建立 Vali_dationWalkthrough 專案,並將此專案加入到 [方案總管] 中。

從資料庫建立新的資料來源

若要建立資料來源

  1. 在 [資料] 功能表上,按一下 [顯示資料來源]。

  2. 在 [資料來源] 視窗中,選取 [加入新資料來源],啟動 [資料來源組態精靈]。

  3. 請選取 [選擇資料來源類型] 頁面上的 [資料庫],再按 [下一步]。

  4. 在 [選擇資料連接] 頁上,執行下列其中一項:

    • 如果下拉式清單中有提供 Northwind 範例資料庫的資料連接,請選取這個資料連接。

      -或-

    • 選取 [新增連接],啟動 [新增/修改連接] 對話方塊。如需詳細資訊,請參閱新增/修改連接對話方塊 (一般)

  5. 如果資料庫需要密碼,請選取選項來加入機密資料,然後按一下 [下一步]。

  6. 按一下 [將連接字串儲存到應用程式組態檔] 頁面上的 [下一步]。

  7. 在 [選擇您的資料庫物件] 頁面上,展開 [資料表] 節點。

  8. 選取 [訂單明細] 資料表,再按 [完成]。

    NorthwindDataSet 會加入至專案,且 [資料來源] 視窗中會出現 OrderDetails 資料表。

建立資料繫結控制項

若要在表單上建立資料繫結控制項

  1. 在 [資料來源] 視窗中,選取 [訂單明細] 資料表。

  2. 從資料表的控制項清單中,選取 [詳細資料]。

  3. 從 [資料來源] 視窗,將 [訂單明細] 節點拖曳至 Form1。

    具有描述性標籤的資料繫結控制項以及用於巡覽資料錄的工具區域 (BindingNavigator) 會出現在表單上。具有描述性標籤的資料繫結控制項以及用於巡覽資料錄的工具區域 (BindingNavigator) 會出現在表單上。NorthwindDataSetOrder_DetailsTableAdapterBindingSourceBindingNavigator 會出現在元件匣中。

將 ErrorProvider 控制項加入至表單

設定 ErrorProvider 控制項

  1. 從 [工具箱] 將 ErrorProvider 拖曳至 Form1。

  2. 在 [屬性] 視窗中,將 ErrorProviderDataSource 屬性設定為 Order_DetailsBindingSource。

    注意事項:

    不要設定 DataMember 屬性。

建立 ColumnChanging 事件處理常式

建立驗證事件處理常式

  1. 方案總管 中按兩下 NorthwindDataSet.xsd 檔案,在 [DataSet 設計工具] 中開啟 NorthwindDataSet。

  2. 按兩下 OrderDetails 資料表上的 Quantity 資料行,建立 OrderDetailsDataTable_ColumnChanging 事件處理常式 (在 C# 中,只會建立資料表的部分類別)。

    注意事項:

    按兩下資料表名稱 (標題列中的 [訂單明細]),即可建立 RowChanging 事件的事件處理常式。

  3. 加入程式碼,驗證 e.ProposedValue 確實包含大於 0 的值;如果建議的值等於或小於 0,請將資料行設定為指出其包含錯誤。

    將下列程式碼貼到在此處加入使用者程式碼註解下方資料行變更的事件處理常式中:

    If CType(e.ProposedValue, Short) <= 0 Then
            e.Row.SetColumnError(e.Column, "Quantity must be greater than 0")
        Else
            e.Row.SetColumnError(e.Column, "")
    End If
    
    // C#
    // Add the following code 
    // to the partial class.
        public override void EndInit()
        {
            base.EndInit();
            Order_DetailsRowChanging += TestRowChangeEvent;
        }
    
        public void TestRowChangeEvent(object sender, Order_DetailsRowChangeEvent e)
        {
            if ((short)e.Row.Quantity <= 0)
            {
                e.Row.SetColumnError("Quantity", "Quantity must be greater than 0");
            }
            else
            {
                e.Row.SetColumnError("Quantity", "");
            }
        }
    

測試應用程式

若要測試應用程式

  1. 按下 F5,執行應用程式。

  2. 將 [數量] 文字方塊中的值變更為 0。

  3. 按 TAB 鍵,將焦點移出文字方塊之外。

    隨即出現錯誤提供者圖示。

  4. 將滑鼠指標置於錯誤提供者上方,以查看訊息。

後續步驟

根據應用程式的需求而定,您在加入驗證後可能還會想執行幾個步驟。您可以對這個逐步解說進行加強的部分包括:

請參閱

概念

資料的新功能

顯示資料概觀

其他資源

資料逐步解說

連接至 Visual Studio 中的資料

準備您的應用程式以接收資料

將資料擷取至您的應用程式中

顯示 Windows 應用程式之表單上的資料

在您的應用程式中編輯資料

驗證資料

儲存資料