Dies ist sehr einfach ... es bedeutet, dass Ihre Abfrage keine Ergebnisse zurückgegeben hat. Sie müssen immer defensiv codieren und prüfen, ob das Rows-Array Elemente enthält, bevor Sie versuchen, es zu indizieren. Etwas wie:
if (dt.Rows.Count > 0)
soptype = dt.Rows[0]["SOPTYPE"].ToString();
else
somethingWentWrong();