我正在嘗試使用Using()
語句和SqlConnection
。使用屬性時連接狀態關閉
我做了SqlConnection
頁屬性是這樣的...
public SqlConnection baseConnection
{
get { return new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); }
}
然後創建using()
聲明是這樣的...
using (baseConnection)
{
SqlCommand select = new SqlCommand("SELECT * FROM TABLE", baseConnection);
baseConnection.Open();
SqlDataReader reader = select.ExecuteReader();
//... other irrelevant code
}
但代碼運行時我得到一個異常
異常詳細信息:System.InvalidOperationException:ExecuteReader需要open和ava可用連接。連接的當前狀態已關閉
我瞭解異常,我不明白的是爲什麼當我用baseConnection.Open()
打開它時連接未打開?
我在整個站點使用這個連接,我想把它作爲一個頁面屬性放在一個自定義的基類中,所以我不必繼續輸入它。這是不允許的?
@Aniket:由於附着到的SelectCommand的baseConnection是不是該被打開 – jbl 2013-03-20 10:10:05
我不認爲這是一個好主意的人。在連接上調用Dispose並不會使其成爲null。因此,這隻會工作一次(然後創建),並在其餘時間失敗。 – 2013-03-20 10:11:20
@jbl嗯,........ – 2013-03-20 10:11:23