To bardzo proste... oznacza to, że Twoje zapytanie nie zwróciło żadnych wyników. Zawsze musisz kodować defensywnie i sprawdzać, czy tablica Rows zawiera jakieś elementy, zanim spróbujesz ją zindeksować. Coś takiego:
if (dt.Rows.Count > 0)
soptype = dt.Rows[0]["SOPTYPE"].ToString();
else
somethingWentWrong();