如何从 SQL Server 2012 还原数据库?这是我的代码:private void [connTes()][1]{ try { conString = "server=.\\SQLEXPRESS;database=db_datatestproject;user=admin;password=123;Integrated Security=True"; connnn = new SqlConnection(conString); connnn.Open(); } catch { }}private void button1_Click(object sender, EventArgs e){ connTes(); try { if (txtlocation.Text == "") { MessageBox.Show("select database"); return; } else { string databesing = connnn.Database.ToString(); string a = "ALTER DATABASE " + databesing + " SET SINGLE_USER WITH ROLLBACK IMMEDIATE;"; a += "RESTORE DATABASE "+databesing+" FROM DISK ='"+txtlocation.Text+"' WITH REPLACE;"; SqlCommand cmd = new SqlCommand(a, connnn); SqlDataReader dr = cmd.ExecuteReader(); connnn.Close(); connnn.Dispose(); MessageBox.Show("done restored"); } } catch(SqlException ex) { MessageBox.Show(ex.ToString()); }}这是我得到的错误:RESTORE 无法处理数据库“db_testproject”,因为它被会话使用。建议在执行此操作时使用master 数据库。RESTORE DATABASE 异常终止。如何修复此错误?
1 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
添加
USE MASTER; GO
到您的 TSQL 恢复命令的开始。
您需要在另一个数据库中,而不是在您要恢复的数据库中。
另请注意@marc_s 的评论:“由于您没有从中取回任何数据SqlCommand
,请使用ExecuteNonQuery()
代替ExecuteReader()
”
- 1 回答
- 0 关注
- 157 浏览
添加回答
举报
0/150
提交
取消