I have come across this problem before and I have never understood the reasoning for it: in a desktop application developed in .Net the connection string is stored as a read-only value in the application's app config.
In every windows application I've written, the database needs to be set by the user: if I'm deploying an application to different sites it's unlikely they will be using the same database. Surely this is the common case for a desktop application? So why is the connection string made read-only in the framework?
Is it a case of the database framework designers thinking in terms of server applications and forgetting the desktop use-case?