Re: [問題] Datareader的限制問題

作者: m339606 (mize)   2014-06-01 23:42:40
※ 引述《wind681201 (阿風~~)》之銘言:
: 在msdn上面有說,在connection裡,只能存在一個datareader,
: 這一句話,我一直是看不懂,我的疑問是。
: 一、一個connection裡只能存在一個Datareader?
: 二、只要是連線相同的資料庫,只能有一個datareader?
: 三、關閉datareader就好,還是連sqlcommand也要一起關了,才可以用呢?
: 狀況一:
: 在a.aspx網頁裡有一個connection連b資料庫,在這裡只能有一個datareader?
: 那在b.aspx網頁中有一個connection連b資料庫,就無法使用datareader?
: 也就是說,整個網站,多人使用一個datareader?
: 狀況二:
: A class裡,有conneciotn連資料庫b,若我
: dim a1 as new a : dim b1 as new a
: 那是個存在一個datareader嗎?還是說a1 b1都有自己的datareader可用呢?
: 狀況三:
: 同樣的連線中,跑槽狀迴圈,就不能用datareader因為只能有一個,可能
: 外層的datareader沒關,就不能用在內層?
: 研究很久了,還是不清楚
一個Reader被建立出來後在尚未關閉或消滅之前connection都是保持著open
所以同樣的connection實體再去做其他Command會丟出Exception
狀況二不明白你說的意思
狀況三
Reader是順向而且不可逆的資料讀取
你需要在後面大量程式碼使用到的資料請讀入DataTable
作者: wind681201 (阿風~~)   2014-06-02 14:11:00
第二是說,同樣的物件裡都有dr,那分別用二個去new也算在同一個conn裡嗎?
作者: Ammenze (藍天白雲)   2014-06-02 18:02:00
你在class有new connection的話,new的時候就是新的Dr也就不會是同ㄧ個
作者: wind681201 (阿風~~)   2014-06-02 18:31:00
所以若是靜態的話,整個系統只能存在一個Dr而動態的話,就是本身物件一個dr,是分開的所以應該是說,一個conn一個dr,是看有幾個conn?
作者: m339606 (mize)   2014-06-03 20:59:00
1個conn配一個Reader沒錯

Links booklink

Contact Us: admin [ a t ] ucptt.com