First of all, why to let every class manage MySQL connection when they are not supposed to have knowledge of database. You should have separate layers of separate concerns. All the database kind stuffs should be done in a separate
Data Access Layer. The business logic should be a separate layer.
There are various parameters to decide the right architecture and approach for your application. There is nothing like "..really a big project".
Believe me you have a huge task ahead (considering your question). You need to learn how to design
Enterprise Applications.
Check these articles for further details-
Enterprise Application Architecture: Designing Applications and Services in .NET - Part I[
^]
A Guide to Building Enterprise Applications on the .NET Framework[
^]
Enterprise Solution Patterns Using Microsoft .NET[
^]
Here is a book for reference-
Microsoft .NET - Architecting Applications for the Enterprise (Developer Reference)[
^]
Hope, it helps :)