А что если радикально поменять метод на примерно такой:
X++:
public int getRecordCount()
{
COM rstCount;
COM fldCount;
COMVariant fldValue;
;
rstCount = new COM(@"ADODB.Recordset");
rstCount.Open(@"SELECT Count(*) FROM [" + strSheetName + @"$]", this.getConnection());
fldCount = rstCount.Fields();
fldCount = fldCount.Item(0);
fldValue = fldCount.Value();
return fldValue.int();
}