Во-первых, присвойте значение объекту, который может безопасно лечь и протестирован на нулевые значения.
Во-вторых, используйте TryParse (), если есть вероятность, что он не сработает (что, вероятно, излишне в этомсценарий ... Функция Compute всегда будет приводить ни к чему-либо, или к чему-то, что может быть преобразовано ... Но я уже набрал код, поэтому я его оставлю. И это просто хорошая привычка.)
object oTotal = CompTab.Compute("Sum(share)", "IsRep=0");
Decimal total;
if(oTotal != null)
{
if(!System.Decimal.TryParse(oTotal.ToString(), out total))
{
// whatever logic you need to include if the TryParse fails.
// Should never happen in this case.
}
}