Invalid attempt to call Read when reader is closed etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Invalid attempt to call Read when reader is closed etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

16 Nisan 2015 Perşembe

Invalid attempt to call Read when reader is closed.

Senaryomuz veritabanımızdan çektiğimiz kayıtlarla bir combobox doldurmak olsun.
Bu işlem için datareader döndüren bir methodumuz var. bu methodda sql bağlantimiz datareader geri döndürüldükten sonra kapatılması gerekmektedir. aksi takdir. bu hatayı alırız.(Invalid attempt to call Read when reader is closed.) ayrıca combobox doldurma işlemi için aşağıdaki metodlardan faydalanabilirsiniz. iyi çalışmalar.


public static SqlDataReader ReturnQueryDataReader(SqlCommand command)
{
            SqlConnection Baglanti = new SqlConnection(ConnectionHelper.GetConnectionString());
            if (Baglanti.State == ConnectionState.Closed)
                Baglanti.Open();
            command.Connection = Baglanti;
            SqlDataReader dr = command.ExecuteReader();
            return dr;   // Bağlantı kapatılmadan önce değer döndürülmeli..
            Baglanti.Close();
}


public static void FillCombobox(ComboBoxEdit ComboName,int CategoryId )
{
            string Sql ="Select Distinct KOD From KODS Where CATEGORY=" + CategoryId + " ");
            SqlCommand Command = new SqlCommand(Sql);
            SqlDataReader Dr = DatabaseHelper.ReturnQueryDataReader(Command);
            while (Dr.Read())
            {
                ComboName.Properties.Items.Add(Dr[0].ToString());
            }
            Dr.Close();
   }