Here are the possible reasons if you're sure you didn't passed the incorrect database instance name (CPData):
1. You have your configuration file under a class library project. Class libraries don't own configuration files so it should always be part of an executable project.
2. You are referencing the Microsoft.Practices.EnterpriseLibrary.Data assembly from GAC. Check the CopyLocal property of your Data reference; if it is set to False, then the CLR is trying to load it from GAC. Change it to
True if you do not really intend to reference from GAC. If on the other hand, you really need it to be, there's a workaround posted in this
3. The Database Provider property (or providerName attribute) is not set. Make sure it's set to System.Data.OleDb.
Global Technology and Solutions