Jag har kapslat in det mesta av min SQL-logik i en DAL. En av dessa DAL-metoder drar skalära Ints med hjälp av följande logik. Det kan fungera för dig:
object temp = cmnd.ExecuteScalar();
if ((temp == null) || (temp == DBNull.Value)) return -1;
return (int)temp;
Jag vet att du har angett mycket kod ovan men jag tror att detta verkligen är kärnan i ditt problem. Lycka till!