繁体   English   中英

'执行超时已过期。 在操作完成之前超时时间已过或服务器没有响应。

[英]'Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.'

我想从选定的驱动器恢复数据库,但每次它抛出以下异常

执行超时已过期。 在操作完成之前超时时间已过或服务器没有响应。

但这仅适用于特定数据库,当我尝试恢复另一个数据库时,它工作得很好。
谁能帮帮我。
以下代码我使用过

openFileDialog1.ShowDialog();
query("IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = '" + cmbDatabaseName.Text + "') DROP DATABASE " + cmbDatabaseName.Text + " RESTORE DATABASE " + cmbDatabaseName.Text + " FROM DISK = '" + openFileDialog1.FileName + "'");
lbmsg.Visible = true;
lbmsg.Text = "Database Backup file has been restore successfully";

你的问题是 DROP DATABASE 因为它必须有一些连接。 将此命令放入您的代码中: ALTER DATABASE

query("    
            IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = '" + cmbDatabaseName.Text + "'); 
            ALTER DATABASE " + cmbDatabaseName.Text + " SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
            DROP DATABASE " + cmbDatabaseName.Text + "; 
            RESTORE DATABASE " + cmbDatabaseName.Text + " FROM DISK = '" + openFileDialog1.FileName + "';
");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM