3) In my opinion, querying the database shouldn't involve heap allocations.
Erm... except for numeric values, this is almost impossible, of course - I meant to keep allocations to a minimum. For example, unless Reader preallocates - you can only read one result at a time from a Connection, so why separate the two?
-- Best regards, Vladimir mailto:vladi...@thecybershadow.net