Çektiğin veriyi while öncesinde bir list veya datatable'a at. Sonra onun içinde for ile dönerek yap. While içerisine hiç girme bile. Belki using içinde bile olman sorun yaratabiliyor olabilir. Veriyi al, connection'ı kapa, işlemini yap.
var dt = new DataTable();
dt.Load(modelno);
for(int i = 0; i < dt.Rows.Count; i ++)
{ }