2010-02-26 97 views
0

我在後臺使用SQL Server 2005製作VB.NET應用程序。當然用戶不能直接編輯數據庫,但會使用一些UI功能來添加和修改數據。VB.NET - 直接訪問數據庫

但是,應該可以從管理界面輕鬆訪問幾個表格,例如有關供應商的特定信息。讓用戶自由編輯這些數據的最簡單方法是什麼?一種方法是使用DataGridView,但這對用戶來說似乎很複雜,另外我不確定何時將編輯後的數據保存回數據庫。

我能想到的最佳方式是創建用於添加,刪除和更改信息的自定義對話框,但對於這樣一個小功能來說,這看起來太多了。

回答

1

您要麼必須以表格格式(比如使用DataGridView)爲他們提供數據,要麼需要構建一些可以讓他們編輯單個記錄(如自定義表格)的東西。看起來很多工作(可以),但是有一些方法可以減少工作量。

查看如何在VB.NET中使用數據綁定。有一個教程here,另一個here和其他許多人在那裏。您可以將數據綁定用於表格視圖或單個記錄。使用DataGridView對於用戶來說不是太複雜,只要你在代碼中建立必要的支持 - 確保行被保存,如果它已被更改並移動到另一行(或提示它們),禁止在列上編輯在將數據寫回數據庫之前,他們不應該能夠更改,驗證數據等。

還有一些代碼生成工具,如CodeSmith可以在GUI和數據庫之間創建數據訪問層。您可以獲得的一些模板甚至會爲您生成實際的表格。

我能想到的唯一的其他選擇是讓他們通過像SQL Server Management Studio這樣的工具直接訪問數據庫,並設置只具有特定表/視圖權限的登錄名,但我強烈建議不要這樣做。

+0

是的我可以添加一個數據綁定到datagridview或單個字段,問題是什麼時候最好是運行TableAdapter.Update方法。在CellLeave,CellValidated或按下保存按鈕時。 – MatsT 2010-02-26 15:32:44

+0

我會建議保存記錄,當用戶完成編輯行並移動到另一行(或表外的其他控件)使用RowLeave事件或讓他們更改幾行然後單擊保存按鈕。如果您使用「保存」按鈕選項,請確保在關閉表單之前檢查所有已編輯的行。 – TLiebe 2010-02-26 15:52:15