專家介紹ADO.NET使用相關問題進行研究
ADO.NET使用泛型編程已經離我們不遠了,在微軟最近隨SQL Server Yukon Beta1發行的.NET Framework 1.2中就已經有了泛型的影子。雖然現在它還是問題多多,但是相信隨著新版.NET Framework的正式發行。
.NET系統是一個單根繼承系統,所有的類型都派生自Object。我以前一直認為在單根繼承系統中用不著泛型。既然所有的東西都可以作為Object傳遞,又何必使用泛型呢?只是增加復雜度而已,除了看起來高深一點,似乎沒有別的什么好處了。#t#
但是,當兩個***的單根系統,Java和.NET,都勢不可擋地要加入泛型編程時,我不免要重新審視這個問題ADO.NET使用——為什么一定要泛型編程?歸納起來,泛型比非泛型具有下面兩個優點:
1、 更加安全
在非泛型編程中,雖然所有的東西都可以作為Object傳遞,但是在傳遞的過程中免不了要進行類型轉換。而類型轉換在運行時是不安全的。使用泛型編程將可以減少不必要的類型轉換,從而提高安全性。ADO.NET使用
2、 效率更高
在非泛型編程中,將簡單類型作為Object傳遞時會引起Boxing和Unboxing操作,這兩個過程都是具有很大開銷的。使用泛型編程就不必進行Boxing和Unboxing操作了。
.NET泛型具有很好的二進制重用性。這一點得益于.NET將泛型內建在CLR之中。C++泛型和評估中Java泛型所ADO.NET使用依靠的是它們各自的編譯器所提供的特性,編譯器在編譯泛型代碼時將確切的類型展開,這就難免會出現代碼膨脹的問題。而.NET的泛型代碼是在運行時由JIT即時編譯的,這樣CLR就可以為不同類型重用大部分的即時編譯代碼了。
數據庫支持多種不同類型的查詢。有些查詢通過引用一ADO.NET使用個或多個表、視圖或者是通過ADO.NET使用調用一個存儲過程來獲取數據行,有些查詢會對數據行進行修改,還有一些查詢通過創建或修改諸如表、視圖或存儲過程等對象來對數據庫的結構進行有關操作。可使用Command對象對數據庫執行任何一種查詢操作。