Yes your understanding is incorrect. It's very simple: dispose an object if and when it is not going to be used any more. If the DataTable is going be used some more then don't dispose it. Where it's going to be used is irrelevant. All that matters is whether it will be used at all.