Esto es muy simple... significa que no se devolvieron resultados de su consulta. Siempre tiene que codificar a la defensiva y verificar si la matriz de Filas tiene algún elemento antes de intentar indexarla. Algo como:
if (dt.Rows.Count > 0)
soptype = dt.Rows[0]["SOPTYPE"].ToString();
else
somethingWentWrong();