Това е много просто ... това означава, че не са върнати резултати от вашата заявка. Винаги трябва да кодирате отбранително и да проверявате дали масивът Rows има елементи в него, преди да опитате да го индексирате. Нещо като:
if (dt.Rows.Count > 0)
soptype = dt.Rows[0]["SOPTYPE"].ToString();
else
somethingWentWrong();