我想恢复一个 SQL Server localdb 数据库。我试过这段代码:
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim ofd As New OpenFileDialog() With
{
.Filter = "Backup file | *.bak",
.FileName = ""
}
If ofd.ShowDialog = System.Windows.Forms.DialogResult.OK Then
Cursor = Cursors.WaitCursor
Dim csb = New SqlConnectionStringBuilder("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\CHAKER\Documents\RestoDB.mdf;Integrated Security=True;Connect Timeout=30")
Dim dbFullPath = csb.AttachDBFilename
Dim sql = String.Format("RESTORE DATABASE ""{0}"" From DISK = '{1}'", dbFullPath, ofd.FileName)
Dim cmd As New SqlCommand(sql, con)
cmd.ExecuteNonQuery()
MsgBox("Restore complete")
Cursor = Cursors.Default
End If
End Sub
我得到这个例外:
RESTORE 无法处理数据库“C:\Users\CHAKER\Documents\RestoDB.mdf”,因为该会话正在使用它。建议在执行此操作时使用 master 数据库。