1

使用強類型數據集是好的。在VB.Net項目中使用強類型數據集

目前我工作的一個項目使用VB.Net開發的Visual Studio 2010中

以前,它們使用SQL查詢直接進入System.Data.SqlClient的的SqlCommand的,但後來經過我都轉移到強類型DataSet和開始使用TableAdapter的每一個地方..

現在我只想問,它是此方法是很好的一個項目... 或者我應該只使用SqlCommands

轉回到舊的或有任何以很好的方式製作Sql DataBase,因爲它的ERP和m代碼的最後一部分用於數據訪問..

回答

1

我們現在一直使用強類型數據集。

轉移到這種行爲之後,在代碼中使用SQL查詢而不是由表格適配器完成後,感覺非常糟糕。但是數據集有一些開銷,所以我認爲展位方式對於不同的解決方案是有好處的。

對所有字段名稱都具有智能性非常好,如果您更改tableadapter以使其返回不同的東西,則無論您在哪裏需要更改代碼以反映更改時都會遇到設計時錯誤,而不是在客戶正在運行該程序。

有這麼多贏贏的東西與強類型的數據集,所以我永遠不會回去。

+0

但是當你看到強數據類型的代碼文件時,它有近50,000行代碼,只有20個tableadapters ..這是很好的,有人告訴我,強類型數據集消耗很長的時間來執行,因爲它類型轉換每東西 –

+0

對我來說,這個開銷並沒有違揹我使用它的功能。我有web服務項目,其中包含40-50個數據集,處理服務器和客戶端之間的所有數據,而不存在任何性能問題。但一切都是關於你需要什麼。當然,有些情況下數據集不是解決方案。但是,如果你不使用數據集,因爲*開銷*,也許別的東西是問題... – Stefan

+0

我絕不會建議擔心性能之前,性能實際上是一個問題。你可以花6個月的時間編寫代碼,而不是毫秒,但用戶是否會發現有什麼不同?故事的道德 - 如果它的更好的實踐和更容易維護而沒有可怕的開銷就這樣做。 – pingoo

0

表適配器....使更大的數據庫混亂,更新表結構也造成混亂。 我建議爲CRUD操作使用一些自動代碼生成器。 對我來說,你的舊模式看起來比完全切換到表格適配器和強類型數據集要好。

+0

在源代碼中遍地散佈sql查詢時更新表結構是一個更大的麻煩。它關於紀律。更改表格,打開DS並更改tableadapter,然後修復受影響的位置(您可以在錯誤窗口中看到所有位置)。舊的方式:改變表格,轉到源代碼並嘗試查找所有受到影響的查詢,錯過一些,然後嘗試查找所有使用字段的地方,錯過一些。找出程序運行的時間,最壞的情況是客戶找到它,而不是你。有時愚蠢的程序員正在使用row.fields(0)而不是字段名稱,真的很有趣的搜索這些.. – Stefan

0

如果您想要通過網線將數據移動到其他平臺(silverlight,web服務,wcf服務等),那麼使用任何類型的數據集都會將您置於一個角落。

我們解決這個問題的方法是讓屬性列表完全匹配數據庫的類。要將數據移入和移出數據庫,我們使用反射來匹配存儲過程參數或生成動態SQL語句,具體取決於環境和平臺。

當數據庫表發生變化時,進行更改的開發人員還負責更新類結構,反之亦然。

爲了減少所需的手動編碼量,我們使用CodeSmith的代碼生成功能從數據庫生成類,並創建標準的添加/更新存儲過程的基本實現,這些實現需要字段枚舉。

作爲一個額外的好處,這種方法消除了數據庫和業務對象結構之間的緊密聯繫。我們可以針對SQL Server,Oracle,Sqlite和SqlServerCE數據庫使用相同的數據訪問代碼和業務對象類。此代碼用於在Windows,PocketPC,Web,iPad和Android應用程序中創建應用程序;所有移動應用都使用特定於該平臺的本地數據庫,但使用通用數據訪問代碼。

最初的設置還有點多,但從長遠來看,它將帶來巨大的回報。