To use a DataSet you don't need to open a connection at all. When you call the Fill method, the connection will be automatically open and closed after the fill is performed.
It is very possible as you suggested that those timers are trying to execute that code at the same time. You should look into the Monitor class, which should allow you to insist that only one thread can execute this piece of code at a time. Marina You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.