C# 通过AttachDBFilename备份还原sql数据库
我无法创建保存在C# 通过AttachDBFilename备份还原sql数据库,c#,sql-server,backup,C#,Sql Server,Backup,我无法创建保存在C:\database\mydb.mdf等位置的数据库备份 错误:无法创建备份 也许我传递了错误的变量 请任何人都可以验证它,并张贴给我正确的解决方案 提前通知我 PS:数据库没有密码保护,可以使用混合身份验证首先-我猜您的一些参数是错误的: ServerConnection connection = new ServerConnection(serverName); 在这里,您只需要传递服务器的名称,所以在您的情况下,不要发送整个连接字符串,只需传递\SQLExpress 至
C:\database\mydb.mdf等位置的数据库备份
错误:无法创建备份
也许我传递了错误的变量
请任何人都可以验证它,并张贴给我正确的解决方案
提前通知我
PS:数据库没有密码保护,可以使用混合身份验证首先-我猜您的一些参数是错误的:
ServerConnection connection = new ServerConnection(serverName);
在这里,您只需要传递服务器的名称,所以在您的情况下,不要发送整个连接字符串,只需传递\SQLExpress
至于您的数据库名称-我不知道您是否可以使用SMO在SQL Server中备份“附加”MDF文件-通常,当数据库位于服务器上时,这将是数据库名称(仅数据库名称,-无文件名,无扩展名)
string dataBaseName = @"C:\database\mydb.mdf";
因此,我的建议如下:
- 将此MDF文件附加到SQL Server实例(您已经安装了该实例)
- 给它一个有意义的名称,例如
mydb
- 然后在此处仅使用数据库名称作为您的值:
string dataBaseName = "mydb";
有了这些要点,您的代码在我的情况下运行得很好,至少…hey marc_s它仍然会出现这样的错误:无法连接到服务器数据源=。\SQLEXPRESS;综合安全=真实;User Instance=True.error在“Database db=sqlServer.Databases[databaseName];”行抛出是的-显然-这是一个非常糟糕的连接字符串-对于基于服务器的数据库,它既不是有效的连接字符串,对于“附加MDF”数据库场景,它也不完整。。。。看我的response@j4m4l:使用(从MS免费下载)将MDF连接到server@j4m4l:查看SMO方法AttachDatabase
()
string dataBaseName = "mydb";