I am using SMO to restore the database ,
ServerConnection con = new ServerConnection(_serverName, _userName, _password);
Server server = new Server(con);
Restore destination = new Restore();
destination.Action = RestoreActionType.Database;
destination.Database = _databaseName;
BackupDeviceItem deviceItem = new BackupDeviceItem(path, DeviceType.File);
destination.Devices.Add(deviceItem);
destination.ReplaceDatabase = true;
destination.NoRecovery = true;
destination.SqlRestore(server);
I am getting an exception message :
Exclusive access could not be obtained because the database is in use. RESTORE DATABASE is terminating abnormally.
I resolved the issue by killing the connected processes and database
ServerConnection con = new ServerConnection(_serverName, _userName, _password);
Server server = new Server(con);
Restore destination = new Restore();
destination.Action = RestoreActionType.Database;
destination.Database = _databaseName;
BackupDeviceItem deviceItem = new BackupDeviceItem(path, DeviceType.File);
destination.Devices.Add(deviceItem);
destination.ReplaceDatabase = true;
destination.NoRecovery = true;
server.KillAllProcesses("your db name");
server.KillDatabase("your db name");
destination.SqlRestore(server);