If you have a class that contains a private static sqlconnection, and sets it to null, then you can create the connection when it's first used, which is called lazy initialisation ( create it the first time it's used, otherwise return it. ). Use a property to wrap this, and the IDispose/Finaliser pattern to make sure it's cleaned up. Then all your data access code will be in this one class ( which is good design in general ) and therefore all use this one connection. If the app is distributed, then you should use some sort of connection pool if you can, no use having every user hold a connection they are not using. But this pattern works well for local databases with only one user. Here[^] are the MSDN docs on SQLDataAdapter - how did you use it INSTEAD of SQLConnection ? How is the DataAdapter connecting to SQL Server ? It looks to me like this class needs a SQLConnection to work, that's certainly how I use it. Christian Graus - Microsoft MVP - C++