用SQLDEMO恢复数据库的时候总是失败,但备份可以 出错如下数据库恢复失败: [Microsoft][ODBC SQL Server Driver][SQL Server]无法覆盖文件 'D:\SqlDB\hotel1.mdf'。数据库 'hotel1' 正在使用该文件。
[Microsoft][ODBC SQL Server Driver][SQL Server]文件 'hotel1' 无法还原为 'D:\SqlDB\hotel1.mdf'。请使用 WITH MOVE 选项来标识该文件的有效位置。
[Microsoft][ODBC SQL Server Driver][SQL Server]无法覆盖文件 'D:\SqlDB\hotel1_log.ldf'。数据库 'hotel1' 正在使用该文件。
[Microsoft][ODBC SQL Server Driver][SQL Server]文件 'hotel1_log' 无法还原为 'D:\SqlDB\hotel1_log.ldf'。请使用 WITH MOVE 选项来标识该文件的有效位置。
[Microsoft][ODBC SQL Server Driver][SQL Server]在计划 RESTORE 语句时发现了问题。以前的消息提供了详细信息。
[Microsoft][ODBC SQL Server Driver][SQL Server]RESTORE DATABASE 正在异常终止。 我的恢复代码是  SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
            try
            {
                string HtmlPath = "../backup";
                string phypath = HttpContext.Current.Server.MapPath(HtmlPath);
                string dbName = "hotel11";
                string backupFile = "hotel12009427.bak";
                oSQLServer.LoginSecure = false;
                oSQLServer.Connect("localhost", "sa", "sa");
                oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
                oRestore.Database = dbName;
                oRestore.Files = phypath + "\\" + backupFile;
                oRestore.FileNumber = 1;
                oRestore.ReplaceDatabase = true;
                oRestore.SQLRestore(oSQLServer);
                Response.Write( "数据库" + dbName + "已经成功恢复!");
            }
            catch (Exception ex)
            {
                throw new Exception("数据库恢复失败: " + ex.Message);
            }
请高手帮忙解决

解决方案 »

  1.   

    无法覆盖文件 'D:\SqlDB\hotel1.mdf'。数据库 'hotel1' 正在使用该文件。
    另外放在其他文件夹,或是命名为其他的
      

  2.   

    http://www.jb51.net/article/17297.htm数据备份因为数据库正在使用的解决方法   asp.net 
      

  3.   

    除非先重启数据库.net stop mssqlserver,net start mssqlserver
      

  4.   

    TO :wanghao3616 存储过程是放在哪个数据库里的?既然还原的时候,要关闭数据库连接,那这个存储过程怎么执行。