C'est très simple... cela signifie qu'aucun résultat n'a été renvoyé à partir de votre requête. Vous devez toujours coder de manière défensive et vérifier si le tableau Rows contient des éléments avant d'essayer de l'indexer. Quelque chose comme :
if (dt.Rows.Count > 0)
soptype = dt.Rows[0]["SOPTYPE"].ToString();
else
somethingWentWrong();