我在我的應用程序中創建了很多存儲過程,這些存儲過程返回數據表對象中的查詢結果。我從不使用數據集。爲什麼我會使用數據集而不是簡單地將查詢結果作爲數據對象返回?數據集與返回數據表
回答
DataSet可以容納多個DataTable。所以主要的原因是如果你寫了一個存儲過程返回多個結果集。
更好的方法是使用像NHibernate這樣的ORM,並返回模型對象而不是DataTable。
既沒有也沒有。我總是返回強類型的對象。一般來說,數據集或數據表的用法表明程序員不瞭解面向對象的用法。這完全是過時的技術。
看看更現代的方法來處理數據。在過去20年裏發展的東西(這是O/R映射器的週期)。
如果你有一個小應用程序,只想填充一些簡單的控件,如組合框,表適配器aproach很適合這個問題。 – surfmuggle 2013-01-05 08:35:24
@threeFourOneSixOneThree是的,我知道。同樣的事情,與一年的2個字符 - 它只是一個小應用程序。專業的態度是「做得對」,而不是「讓我 – TomTom 2013-01-05 09:26:24
如果您仍然正在處理ADO.NET,您應該理想地將查詢結果存入DataReaders而不是DataTables。他們更有效率。如果我使用ADO.NET並希望從過程返回多個rcordset,那麼我會使用DataReader的NextResult()方法來檢查它們。
正如mpenrow指出的那樣,Datasets是DataTables的容器,可以容納多個表。例如,如果要顯示主/子記錄,例如http://www.mikesdotnetting.com/Article/57/Displaying-One-To-Many-Relationships-with-Nested-Repeaters,則使用數據集的一個原因是在數據表之間創建關係。正如其他人所說,像Linq To Sql,Entity Framework或nHibernate這樣的ORM是最終走向的途徑。它們都在內部使用DataReader來填充模型對象。
- 1. 返回數據表和數據集
- 2. 從數據集返回數
- 3. 數據流中的返回數據集
- 4. 數據集與數據表VS字典與數據表
- 5. 數據集/數據表是返回數據的唯一方法嗎?
- 6. 從兩個表返回的數據集返回過濾記錄
- 7. 如何從數據集過濾值返回數據集
- 8. 返回的列表不返回數據
- 9. SPSiteDataquery返回null數據表
- 10. 偏移量函數返回#VALUE!與小數據集
- 11. 返回數據
- 12. 返回數據
- 13. 返回數據
- 14. 與數據集
- 15. 列表與數據表與數據集對比
- 16. 數據集市與多維數據集
- 17. 同步數據集和數據表與數據庫
- 18. 圖形API返回App Insight數據集
- 19. Facebook Graph API返回空數據集
- 20. 返回多個數據子集
- 21. Delphi webService返回數據集像MS Webservice
- 22. ASP.net 3.5的Webservice返回大數據集
- 23. SQL - 列值操作 - 返回數據集
- 24. CAST()數據集和返回兩個值
- 25. vb.net數據集返回空值
- 26. 使用數據集中的返回值
- 27. Backbonejs集合返回錯誤的數據
- 28. VBScript。數據集錯誤返回
- 29. 春數據的Neo4j庫返回空集
- 30. 用MySQLi返回大數據集
在我看來,使用ORM有時候並不會更好;有時候返回一個類似於表的結構就是你所需要的。 – surfmuggle 2013-01-05 08:35:42