/// /// 獲得資料列表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...