天天看點

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

今天一同志問我這個問題,這個是過程還原:

調用sqlhelper的時候發現輸出參數沒值了???

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

不用sqlhelper也是沒有?神馬情況?

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

用sqldataadapter卻可以?

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數
ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

吓死寶寶了,趕緊看看啥情況。先換種方法看看

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

,,,我去,可以哇!那麼是不是executereader容易有啥坑的問題呢?想了想,對頭,是不是傳回的reader有點問題?

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

先關了看看~我去,有值了!不會這麼容易就搞定了吧?不行,得再試試

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

~~的确,reader沒關閉,那輸出參數就沒值(其實也可以了解~reader說:本大王還沒讀取完呢,你丫急什麼,給我等着)

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

不能就這樣算了啊,我不能總自己寫吧,sqlhelper的問題還是得解決

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

我去,還是沒有。。。。。。。這可不行,看看sqlhelper的源碼怎麼搞的

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

萬惡的清除啊!再試試

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

居然可以了,ok,收工了?來來來,我們繼續看看

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

sqlhelper怎麼寫的?

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

額,經常聽前輩說sqldataadapter是個神奇的東西,果然...

擴:一般很少直接傳回sqldatareader對象的,

ExecuteReader在執行有輸出參數的存儲過程時拿不到輸出參數

貼一個比較弱的轉換(有更好的可以貼評論中的,我就先抛個磚頭)