Re: Multithreading and DAL
Speaking purely from a database perspective you will most of the time be a lot better off just opening the connection, doing your thing and then closing the connection again.
Of course, that rests on the premise that an open connection demands more resources from the Database then the opening and closing of the connection does (which can typically be resolved with thread pooling, to a certain degree).
And personally I'd recommend using locking, what level of locks you need is subject to the changes you're making, but you should always lock off while you're updating/altering tables or rows, simply to avoid non-repeatable read and dirty reads.
In any event, I'd recommend doing a bit of testing and calculations on the load of the server in regards to the first section, but usually you are better off with multiple connections opening and closing, then you are with one connection constantly open and doing a lot of work.