抉擇 是用DataReader還是DataSet

2022-01-22 03:27:23 字數 1135 閱讀 4172

ado.net提供了兩個主要的類來讀取資料。通過本文我們可以學習如何在兩者之間進行選擇。

我 經常聽到有人問這個問題:「在asp.net web應用程式中我應該用datareader類還是dataset類呢?」在很多文章以及新聞組的貼子中 我經常看到這樣的誤解,即認為datareader(sqldatareader或oledbdatareader的縮寫)比dataset好。有時候我 也會看到相反的說法。事實上,microsoft建立了這兩個資料訪問類是因為它們都是我們所需要的。每個類都有其優點和不足,你可以根據應用環境來選擇 用哪乙個。

本文就兩者的選擇問題做了很清楚的講述,可以讓你在運用asp.net時,在選擇datareader類或 dataset類的方面得到一些指南。在基於客戶端的windows form應用程式環境下,這些規則可能會改變。我在做這些講述時,假設你已經用過 datareader和dataset類了,並對它們很熟悉。

運用datareader類

下面就是運用datareader類的理想條件: 

你讀取的資料必須是新的,所以在每次需要資料的時候,你都必須從資料庫讀取。建立乙個datareader類不會消耗很多記憶體,不過隨著負荷的增加,dataset上的效能也會很快地提高資源。

你對每行資料的需求很簡單。該情況的最好的例子就是簡單地將datareader繫結到乙個web控制項,如datagrid或dropdownlist。

你 只需要從資料庫中以只向前的(forward-only) 、唯讀的形式來訪問xml資料。在這種情況下,你可以用sqlcommand物件的 excecutexmlreader()方法來得到乙個xmlreader類(相當於xml版的datareader)。這就需要乙個運用for xml 子句的sql server查詢,或者乙個包含有效xml的ntext欄位。

你計畫對資料庫進行幾個重複的呼叫,來讀取一小塊資訊。在這種情況下,我們前面提到過的效能資料會有更大的提高。

的確,使dataset類更強大的許多功能只適用於基於客戶端的windows form應用程式,比如在多個表之間建立關係的功能。在很多情況 下,dataset類都比datareader類更有優勢,而且在有些情況下,你根本就不能用datareader類。

運用dataset類

用DataReader讀取資料

與前面學習的資料提供程式中的其他元件不同,datareader物件不能直接例項化,需要呼叫command物件的executereader 方法的返回值。使用datareader物件讀取資料的步驟如下 1 建立資料庫鏈結connection物件,可以選sqlconnection或者oledbconne...

umts是移動還是聯通 wcdma是聯通還是移動

滿意答案 ktukh827 2013.07.05 採納率 44 等級 12 已幫助 22711人 中國聯通 wcdma中國移動 td scdma中國電信 cdma20001x中國聯通目前已在7城市在建wcdma試驗網,分別是上海 深圳 佛山 柳州 鄭州 保定和無錫,每個城市計畫建設約100個wcdm...

合同期滿,是留還是跳,怎樣抉擇?

時間過的可真快又是一年了 廢話一句 一轉眼來這公司都兩年多了。不管怎麼樣在這公司自己自學了不少東西,而且大膽的把它們應用到 實際的專案中 各方面也得到了提高,最主要的是在這公司找了乙個 如意的老婆。當然,有利就有弊。到底是留還是跳,如何來抉擇呢?如果去到新的地方去工作,全是新的,就有點恐怖,走出這一...