It sounds like the default database for the current user account has been removed, or permissions to that database have been removed for the user you are looking at.
- Has this user been able to login before?
- Can you connect to SQL server as a different user and find out what that user's default database is?
As an example, try runnning this against sql server when logged in to SQL Server Management Studio (works on SQL Server 2005 onwards):
SELECT name, default_database_name
FROM sys.server_principals
Check the value in the second column for the user in question, and then see if that database exists and the user has permission to it.
EDIT. We now know from your connection string that you are using a user instance. YOu need to check that the database file is available. It may be attached to SQL Server's main instance, for example, which would mean the file is in use and can't be attached to the user instance. Try making a copy of the database file using windows explorer and put the name of that file copy into the AttachDbFilename
parameter - that may show that this is the case.