Hocam kodu değiştirdim dediğiniz mantıkta yaptım ama sorunum su dataadapterıda kapatmamı ıstıyor kapatıyorum con.close ile tekaradan sorgu yazıcagımda con.open diyorum

Bağlantı kapatılmadı. Bağlantının geçerli durumu: açık.
böyle bir hata alıyorum

    string query = String.Format("SELECT Personnel.ID," +
               "Person.Name,Personnel.TitleID,Personnel.Research," +
                "Person.Email,Personnel.OfficeRoomLocation," +
                 "Personnel.OfficePhoneNo,Person.Photo,Personnel.PositionID FROM Personnel,Person where Personnel.PersonID=Person.ID AND Personnel.Type=1 ;");
                SqlDataAdapter da = new SqlDataAdapter(query, con);
                da.SelectCommand.ExecuteNonQuery();
                DataTable dt = new DataTable();
                da.Fill(dt);
                con.Close();
                Hoca h1 = new Hoca();

                h1.lecturer = new List<Lecturer>();
                foreach (DataRow data in dt.Rows)
                {

                   
                    con.Open();
                    Lecturer l1 = new Lecturer();
                    string rankquery = String.Format("Select Enumeration.Type From Enumeration,Personnel Where Enumeration.ID=" + data[2].ToString());
                    string rankolum = "";
                    SqlCommand ranksorgu = new SqlCommand();
                    ranksorgu.Connection = con;
                    ranksorgu.CommandText = rankquery;
                    SqlDataReader rankdata = ranksorgu.ExecuteReader();
                    while (rankdata.Read())
                    {
                        rankolum = rankdata[0].ToString();
                    }
                    l1.id = data[0].ToString();
                    l1.Name = data[1].ToString();
                    l1.RankTitle = rankolum;
                    l1.Research = data[3].ToString();
                    l1.Email = data[4].ToString();
                    l1.Office = data[5].ToString();
                    l1.PhoneNumber = data[6].ToString();
                    l1.Photo = data[7].ToString();
                    l1.RankPosition = data[8].ToString();
                    h1.lecturer.Add(l1);
                    string str = js.Serialize(h1);
                    Label1.Text = str;
                }