DataReader 在打開使用時,壹個 SqlConnection 只允許打開壹個 DataReader,在開啟另壹個 DataReader 時,必須將前面壹個先 Close 掉。
1、使用數據庫更新或插入語句時,通常用 SqlCommand 的 ExecuteNonQuery() 方法,並且定義了壹個公***的數據庫連接,每次查詢時都生成新連接不會有這個問題,但會占用高的數據庫資源。
2、這種情況下,內部會生成壹個空的 DataReader 對象,當前的數據庫連接關閉掉後,該 DataReader 才會釋放,因此在推薦使用 using 關鍵字,可以將它所定義範圍內的對象都釋放掉。
3、也可以設定ConnectionString,直接加上MultipleActiveResultSets=true語句,只適用於SQL 2005之後的版本,先讀出放置在List中。
4、改為下圖代碼之後,ToList之後就被讀到內存中了,與DataContext脫鉤了。