Rumah >pangkalan data >tutorial mysql >Mengapa Adakah `ExecuteNonQuery()` Membuang \'Sudah ada DataReader terbuka...\'?
DataReader Dibuka Semasa Pelaksanaan Sambungan
Semasa menggunakan Visual Studio 2010/.Net 4.0 dan projek MySQL, pembangun menghadapi pengecualian, " Sudah terdapat DataReader terbuka yang dikaitkan dengan Sambungan ini yang mesti ditutup pertama."
Kod yang dimaksudkan cuba untuk melaksanakan pernyataan SQL yang lain semasa pembaca data dibuka. Khususnya, pengecualian dilemparkan pada baris cmdInserttblProductFrance.ExecuteNonQuery();.
Isu ini timbul kerana sambungan digunakan untuk kedua-dua pembaca data dan perintah ExecuteNonQuery. Menurut MSDN, penggunaan sedemikian tidak disokong:
"Perhatikan bahawa semasa DataReader dibuka, Sambungan digunakan secara eksklusif oleh DataReader tersebut. Anda tidak boleh melaksanakan sebarang arahan untuk Sambungan, termasuk mencipta DataReader lain, sehingga DataReader asal ditutup."
Untuk menyelesaikan masalah ini, tutup pembaca data sebelum cuba melaksanakan SQL tambahan kenyataan.
Atas ialah kandungan terperinci Mengapa Adakah `ExecuteNonQuery()` Membuang \'Sudah ada DataReader terbuka...\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!