C# 服务器';的还原失败\管道\81DAC374-2583-49\tsql\query';

C# 服务器';的还原失败\管道\81DAC374-2583-49\tsql\query';,c#,sql-server,vb.net,sql-server-2008,smo,C#,Sql Server,Vb.net,Sql Server 2008,Smo,错误:*“服务器'\.\pipe\81DAC374-2583-49\tsql\query'的还原失败”。* 我在这里得到错误resDB.SqlRestore(sv) 我的备份工作正常,但恢复失败。我正试图让它从过去两天的工作,但没有运气 Public Shared Sub RestoreBackup() Dim sConnect As String = My.Settings.LICConnectionString Dim dbName As String

错误:*“服务器'\.\pipe\81DAC374-2583-49\tsql\query'的还原失败”。*

我在这里得到错误
resDB.SqlRestore(sv)
我的备份工作正常,但恢复失败。我正试图让它从过去两天的工作,但没有运气

   Public Shared Sub RestoreBackup()
        Dim sConnect As String = My.Settings.LICConnectionString
        Dim dbName As String

        Using cnn As New SqlConnection(sConnect)
            cnn.Open()
            dbName = cnn.Database.ToString()
            cnn.ChangeDatabase("master")

            Dim sc As New ServerConnection(cnn)
            Dim sv As New Server(sc)

            ' Check that I'm connected to the user instance
            MsgBox(sv.InstanceName.ToString())

            ' Create backup device item for the backup
            Dim bdi As New BackupDeviceItem("C:\Backup\LIC.bak", DeviceType.File)

            ' Create the restore object
            Dim resDB As New Restore()
            resDB.Devices.Add(bdi)
            resDB.NoRecovery = False
            resDB.ReplaceDatabase = True
            resDB.Database = dbName

            ' Restore the database
            resDB.SqlRestore(sv)
            MsgBox("Your database has been restored.")
        End Using
    End Sub

为什么失败?感谢您的帮助。

看起来您正在尝试通过主数据库进行恢复。您需要将
cnn.ChangeDatabase(“master”)
更改为
cnn.ChangeDatabase(“LIC”)。

编辑:

或者,将行
cnn.ChangeDatabase(“master”)
一起删除,并在实例化还原类后添加以下行:

resDB.Action = RestoreActionType.Database

另外,如果备份来自另一台服务器,您可能希望使用
RelocateFile
-

查看,您应该非常,非常感谢代码失败。@AndrewBarber我不知道你为什么把我的名字放在那个链接上。@AndrewBarber我很抱歉……我只是想告诉你我正在使用这个代码片段……请帮助我修复错误……为什么我应该感谢代码失败??请解释。用文字解释,不是没有任何解释的链接。@SunnyBhattacharjee我已经更新了答案。你发布的链接。