При использовании IDbCommand, IDataReader или DataTable, можете ли вы полагаться на деструктор для удаления ресурсов, или эти объекты будут пропускать ресурсы, если dispose не вызывается напрямую?
Они не протекают, но будут потреблять ресурсы до тех пор, пока не будут собраны мусор. GC вызовет Dispose () для них. Я не думаю, что DataTable поддерживает соединение с базой данных, поэтому вам не придется беспокоиться о вызове Dispose () или Close () для нее.
Смотрите мой ответ здесь на похожий вопрос.