Command對象ExecuteReader()方法

時間:2020-07-11 作者:管理員(yuán) 點擊:681

建立與數據源的連接後,可以使用 DbCommand 對象來執行命令并從數據源中(zhōng)返回結果。今天介紹下(xià)ExecuteReader()方法

ExecuteReader();返回一(yī)個SqlDataReader對象或OleDbDataReader對象,這個看你的程序的需要去(qù)做。可以通過這個對象來檢查查詢結果,它提供了“遊水”式的執行方式,即從結果中(zhōng)讀取一(yī)行之後,移動到另一(yī)行,則前一(yī)行就無法再用。有一(yī)點要注意的是執行之後,要等到手動去(qù)調用Read()方法之後,DataReader對象才會移動到結果集的第一(yī)行,同時此方法也返回一(yī)個Bool值,表明下(xià)一(yī)行是否可用,返回True則可用,返回False則到達結果集末尾。

使用DataReader可以提高執行效率,有兩種方式可以提高代碼的性能:一(yī)種是基于序号的查找,一(yī)個是使用适當的Get方法來查找。因爲查詢出來的結果一(yī)般都不會改變,除非再次改動查詢語句,因此可以通過定位列的位置來查找記錄。用這種方法有一(yī)個問題,就是可能知(zhī)道一(yī)列的名稱而不知(zhī)道其所在的位置,這個問題的解決方案是通過調用DataReader 對象的GetOrdinal()方法,此方法接收一(yī)個列名并返回此列名所在的列号。例:

int id=reader.GetOrdinal("CategoryName");
while(reader.Read())
{
   Response.Write(reader[id]);
 }
reader.Close();

至于第二種方式很直觀,例:

while(reader.Read())
{
 Response.Write(reader.GetInt32(0).ToString()+" "+reader.GetString(1).ToString()+" 
<br>");
}

DataReader的GetInt32()和GetString()通過接收一(yī)個列号來返回一(yī)個列的值,這兩種是最常用的,其中(zhōng)還有很多其它的類型。

(注:DataReader對象在調用Close()方法即關閉與數據庫的連接,如果在沒有關閉之前又(yòu)重新打開(kāi)第二個連接,則會産生(shēng)一(yī)條異常信息)
返回列表
在線溝通

Are you interested in ?

感興趣嗎(ma)?

有關我(wǒ)(wǒ)們服務的更多信息,請聯系

136 7365 2363(同微信) 13140187702

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--聯系索騰

與我(wǒ)(wǒ)們合作

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--與索騰合作,您将會得到更成熟、專業的網絡建設服務。我(wǒ)(wǒ)們以客戶至上,同時也相互挑戰,力求呈現最好的品牌建設成果。

業務咨詢熱線:

136 7365 2363

TOP

QQ客服

在線留言