DataReader方式 獲取資料的操作

2021-09-09 02:12:40 字數 2878 閱讀 8977

/// /// 獲得資料列表list<>,datareader 使用引數的

///

/// 條件

/// hashtable,儲存引數名及引數對應的值

/// list

/// 使用方法:string str = "id=@id";hashtable ht = new hashtable();ht.add("@id", 10);

public listgetlistusedatareader(string strwhere, hashtable ht=null)

//獲取datareader

sqldatareader reader;

//組織引數

if (ht != null && ht.count > 0)

reader = dbhelpersql.executereader(strsql.tostring(), parameters);

}else

reader = dbhelpersql.executereader(strsql.tostring());

if (reader.hasrows)

reader.close();

return list;

}else

}

datareader物件又稱資料閱讀器,是dbms所特有的,常用來檢索大量的資料。datareader物件是以連線的方式工作,它只允許以唯讀、順向的方式檢視其中所儲存的資料,並在executereader方法執行期間進行例項化。

根據.net framework資料提供程式不同,datareader也可以分成sqldatareader、oledbdatareader等。datareader與底層資料庫密切相聯,它實際上是乙個流式的dataset。可以參照下一節的dataset物件與之比較學習,下面我們將著重介紹sqldatareader。

sqldatareader物件常用屬性如下:

fieldcount

獲取當前行的列數

recordsaffected

獲取執行sql語句所更改、新增或刪除的行數

表1 sqldatareader物件常用屬性

sqldatareader物件的常用屬性。

l   fieldcount屬性

獲取datareader物件中有幾行資料,預設值為-1。如果未放在有效的記錄集中,屬性值則為0;否則為當前行中的列數。

l   recordsaffected屬性

直到所有的行都被讀取並且資料閱讀器已經關閉時,才設定recordsaffected屬性,其預設值為−1。該屬性的值是累積值。例如,如果以批處理模式插入3個記錄,則recordsaffected屬性的值將為3。

sqldatareader物件常用方法

sqldatareader物件常用方法如下:

read

使datareader物件前進到下一條記錄(如果有)

close

關閉datareader物件。注意,關閉閱讀器物件並不會自動關閉底層連線

get用來讀取資料集的當前行的某一列的資料資料

表2 sqldatareader物件常用方法

sqldatareader物件常用方法詳解

l   read方法

語法:public override bool read ()

返回值:如果存在多個行,則為true;否則為false。

datareader物件中的read()方法用來遍歷整個結果集,不需要顯示地向前移動指標,或者檢查檔案的結束,如果沒有要讀取的記錄了,則read方法會自動返回false。

注意:要使用sqldatareader,必須呼叫sqlcommand物件的executereader()方法來建立,而不要直接使用建構函式。

sqldatareader物件的應用

例項使用sqldatareader物件讀取資料(源程式詳見光碟中例6.6)

本示例主要講解在asp.net應用程式中如何使用sqldatareader物件讀取資料庫中的資料。執行程式,執行結果如圖6.11所示:

圖1 讀取資料的結果圖

程式實現的步驟:

(1)、新建乙個**,預設主頁是default.aspx。

(2)、在web.config檔案中配置資料庫連線字串,在下的子配置節新增連線字串。

(3)、向default.aspx頁中新增乙個label控制項將其命名為lblstudent,在page_load中寫下如下**:

protected void page_load(object sender, eventargs e)

mydr.close(); //關閉datareader

}catch

finally

}}

參考文章

1. 雪夜, datareader方式 獲取資料.

2. 悠哲rht, 使用datareader物件讀取資料.

DataReader物件與資料獲取

datareader物件與資料獲取 datareader物件以 基於連線 的方式來訪問資料庫。也就是說,在訪問資料庫 執行sql操作時,datareader要求一直連在資料庫上。這將會給資料庫的連線負載帶來一定的壓力,但datareader物件的工作方式將在很大程度上減輕這種壓力。1 datarea...

通過DataReader獲取多個結果集

我們知道,ado.net的datareader提供一種從資料庫讀取行的只進流的方式。通常情況下,我們都是針對乙個結果集進行處理。其實通過datareader的nextresult方法,我們可以批處理t sql,也就是可以獲取處理兩個或者多個結果集。下面通過乙個簡單的示例,來簡單說明一下這個功能。1 ...

React使用jquery方式動態獲取資料

好久沒寫react了,今天有空寫一下來react實現實時請求資料,並重新整理資料的小demo.首先我還是選擇了jquery方式中自帶的ajax獲取資料,首先要引用所需的js包 接下來要寫乙個自定義的js檔案,建立乙個react元件 var demo react.createclass 渲染元件 re...