逐步解說:加入驗證至資料集
這個逐步解說將示範當變更資料集中的資料時,如何驗證資料。 執行資料驗證檢查的位置視應用程式的需求而定;在此逐步解說中,將會在變更個別資料行中的值時,驗證資料。 此逐步解說使用 ColumnChanging 事件,以驗證可接受的值確實已輸入至資料錄中。 如果此值無效,則會顯示 ErrorProvider 控制項給使用者。
此範例也將示範如何使用 [DataSet 設計工具] 來建立資料集的部分類別 (使用者可以在部分類別加入程式碼來擴充 Visual Studio 產生之資料集的功能, 如果資料集重新產生,則不會被覆寫)。
注意事項 |
---|
您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定。 |
逐步解說將說明的工作包括:
建立新的 [Windows 應用程式] 專案。
利用資料來源組態精靈建立和設定資料集。
選取當從 [資料來源] 視窗拖曳項目時,要在表單上建立的控制項。 如需詳細資訊,請參閱 HOW TO:設定從資料來源視窗拖曳時要建立的控制項。
您可以從資料來源視窗將項目拖曳至表單上,以建立資料繫結控制項。
建立部分類別來擴充資料集的功能。
為 OrderDetails 資料表的 ColumnChanging 事件建立事件處理常式。
加入驗證,確認 Quantity 資料行包含大於 0 的值。
顯示 ErrorProvider 元件 (Windows Form),通知使用者,資料繫結控制項包含無效的值。
必要條件
若要完成這個逐步解說,您需要:
- Northwind 範例資料庫的存取權。 如需詳細資訊,請參閱 HOW TO:安裝範例資料庫。
建立新的 Windows 應用程式
若要建立新的 Windows 應用程式專案
從 [檔案] 功能表中,建立新專案。
將專案命名為 ValidationWalkthrough。
選取 [Windows 應用程式],並按一下 [確定]。 如需詳細資訊,請參閱開發用戶端應用程式。
會建立 ValidationWalkthrough 專案,並將此專案加入到 [方案總管] 中。
從資料庫建立新的資料來源
若要建立資料來源
按一下 [資料] 功能表上的 [顯示資料來源]。
在 [資料來源] 視窗中,選取 [加入新資料來源],以啟動 [資料來源組態精靈]。
請選取 [選擇資料來源類型] 頁面上的 [資料庫],再按 [下一步]。
在 [選擇資料連接] 頁面上,執行下列其中一項動作:
如果下拉式清單中有提供 Northwind 範例資料庫的資料連接,請選取這個資料連接。
-或-
選取 [新增連接],啟動 [新增/修改連接] 對話方塊。 如需詳細資訊,請參閱新增/修改連接對話方塊 (一般)。
如果資料庫需要密碼,請選取選項來加入敏感性資料,然後按一下 [下一步]。
按一下 [將連接字串儲存到應用程式組態檔] 頁面上的 [下一步]。
在 [選擇您的資料庫物件] 頁面上,展開 [資料表] 節點。
選取 [訂單明細] 資料表,再按 [完成]。
NorthwindDataSet 會加入至專案,且 [資料來源] 視窗中會出現 OrderDetails 資料表。
建立資料繫結控制項
若要在表單上建立資料繫結控制項
在 [資料來源] 視窗中,選取 [訂單明細] 資料表。
從資料表的控制項清單中,選取 [詳細資料]。
從 [資料來源] 視窗,將 [訂單明細] 節點拖曳至 Form1。
具有描述性標籤的資料繫結控制項以及用於巡覽資料錄的工具區域 (BindingNavigator) 會出現在表單上。 具有描述性標籤的資料繫結控制項以及用於巡覽資料錄的工具區域 (BindingNavigator) 會出現在表單上。 NorthwindDataSet、Order_DetailsTableAdapter、BindingSource 和 BindingNavigator 會出現在元件匣中。
將 ErrorProvider 控制項加入至表單
設定 ErrorProvider 控制項
從 [工具箱] 將 ErrorProvider 拖曳至 Form1。
在 [屬性] 視窗中,將 ErrorProvider 的 DataSource 屬性設定為 Order_DetailsBindingSource。
注意事項 不要設定 DataMember 屬性。
建立 ColumnChanging 事件處理常式
建立驗證事件處理常式
在 [方案總管] 中按兩下 NorthwindDataSet.xsd 檔案,在 [DataSet 設計工具] 中開啟 NorthwindDataSet。
按兩下 OrderDetails 資料表上的 Quantity 資料行,建立 OrderDetailsDataTable_ColumnChanging 事件處理常式 (在 C# 中,只會建立資料表的部分類別)。
注意事項 按兩下資料表名稱 (標題列中的 [訂單明細]),即可建立 RowChanging 事件的事件處理常式。
加入程式碼,確認 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", ""); } }
測試應用程式
若要測試應用程式
按下 F5 執行應用程式。
將 [數量] 文字方塊中的值變更為 0。
按 TAB 鍵,將焦點移出文字方塊之外。
隨即出現錯誤提供者圖示。
將滑鼠指標置於錯誤提供者上方,以查看訊息。
後續步驟
根據應用程式的需求而定,您在加入驗證後可能還會想執行幾個步驟。 您可以對這個逐步解說進行加強的部分包括:
加入將更新傳回資料庫的功能。 如需詳細資訊,請參閱逐步解說:儲存資料至資料庫 (單一資料表)。
編輯資料集,以加入或移除資料庫物件。 如需詳細資訊,請參閱 HOW TO:編輯資料集。
請參閱
概念
Visual Studio 2012 中資料應用程式開發的新功能
將 Windows Form 控制項繫結至 Visual Studio 中的資料