C# 从路径而不是“恢复MS SQL数据库”;c:\Program Files\Microsoft SQL\…\Backup“;

C# 从路径而不是“恢复MS SQL数据库”;c:\Program Files\Microsoft SQL\…\Backup“;,c#,sql-server,database,path,database-restore,C#,Sql Server,Database,Path,Database Restore,我希望通过还原一个空数据库而不是通过SQL创建数据库来减少在本地计算机上创建数据库的工作量 这是我到目前为止的代码(DataAccess.ApplicationDirectory为“C:\ProgramData\RC Vehicle Management\”): 但在执行时,我得到以下异常(在“sqlCommand.ExecuteNonQuery();”): 我不知道它为什么要从“c:\Program Files\Microsoft SQL Server\MSSQLS10\U 50.MSSQLS

我希望通过还原一个空数据库而不是通过SQL创建数据库来减少在本地计算机上创建数据库的工作量

这是我到目前为止的代码(DataAccess.ApplicationDirectory为“C:\ProgramData\RC Vehicle Management\”):

但在执行时,我得到以下异常(在“sqlCommand.ExecuteNonQuery();”):

我不知道它为什么要从“c:\Program Files\Microsoft SQL Server\MSSQLS10\U 50.MSSQLSERVER\MSSQL\backup”获取备份,我选择的路径是“c:\ProgramData\RC Vehicle Management\EmptyDatabase.bak”

我做错了什么?
或者只是无法从“c:\Program Files\Microsoft SQL…\Backup”以外的路径进行还原?

我发现了问题,您不能在参数周围使用括号或引号

这项工作:

SqlCommand sqlCommand = new SqlCommand("RESTORE DATABASE @localDatabaseName " +
                                       "FROM DISK = @emptyDatabasePath " +
                                       "WITH NOUNLOAD, REPLACE", sqlConnection)

这是非常有选择性的引用。紧接着,您可以阅读:“有关更多信息,请参阅本主题后面的“将文件和文件组还原到新位置”。这是正确的,但我现在找到了解决方案。
Cannot open backup device 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\@emptyDatabasePath'.
Operating system error 2(failed to retrieve text for this error. Reason: 15105).
RESTORE DATABASE is terminating abnormally.
SqlCommand sqlCommand = new SqlCommand("RESTORE DATABASE @localDatabaseName " +
                                       "FROM DISK = @emptyDatabasePath " +
                                       "WITH NOUNLOAD, REPLACE", sqlConnection)