Предположительно, ваш запрос не возвращает строк. Обработайте соответственно (если возможно, что запрос не возвращает строк, добавьте оператор if
). В противном случае, возможно, что-то не так с вашим запросом (выбор столбца из объекта с тем же именем кажется неправильным).
int retVal = default( int );
if( dt.Rows.Count == 1 )
{
retVal = (int)dt.Rows[0][columnName];
}
return retVal;