Database restoration is complex: because it destroys the current content of the DB.
In this case, I'd hazard a guess that your backup code is wrong, and is holding the file open - that would explain the "file in use" error you are getting, where very little else would.
Look at your backup code, and check it thoroughly: then try to use the restore.
There is an example of how I take backups here:
Backing up an SQL Database in C#[
^] which may help you.