[英]backup restore sql database through AttachDBFilename
我无法创建保存在C:\\database\\mydb.mdf
等位置的数据库的备份
错误:无法创建备份
Backup sqlBackup = new Backup();
sqlBackup.Action = BackupActionType.Database;
sqlBackup.BackupSetDescription = "ArchiveDataBase:" +
DateTime.Now.ToShortDateString();
sqlBackup.BackupSetName = "Archive";
sqlBackup.Database = databaseName;
BackupDeviceItem deviceItem = new BackupDeviceItem(destinationPath, DeviceType.File);
//ServerConnection connection = new ServerConnection(serverName, userName, password);
ServerConnection connection = new ServerConnection(serverName);
Server sqlServer = new Server(connection);
Database db = sqlServer.Databases[databaseName];
sqlBackup.Initialize = true;
sqlBackup.Checksum = true;
sqlBackup.ContinueAfterError = true;
sqlBackup.Devices.Add(deviceItem);
sqlBackup.Incremental = false;
sqlBackup.ExpirationDate = DateTime.Now.AddDays(3);
sqlBackup.LogTruncation = BackupTruncateLogType.Truncate;
sqlBackup.FormatMedia = false;
sqlBackup.SqlBackup(sqlServer);
string dataBaseName = @"C:\database\mydb.mdf";
string serverName = @"Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True";
string destinationPath = "C:\\mydb.bak";
也许我传递了错误的变量?
请任何人验证并向我发布正确的解决方案
提前thnx。
PS:数据库不受密码保护,可以使用混合身份验证
首先-我猜您的某些参数有误:
ServerConnection connection = new ServerConnection(serverName);
在这里,您只需要传递服务器的名称 -因此,在这种情况下,请勿发送整个连接字符串-仅发送.\\SQLExpress
至于您的数据库名称-我不知道您是否可以使用SMO备份SQL Server中的“附加” MDF文件-通常,这将是数据库名称( 仅数据库名称-无文件名,无扩展名)当数据库在服务器上时 。
string dataBaseName = @"C:\database\mydb.mdf";
所以我的建议是:
mydb
然后仅在此处使用数据库名称作为您的值:
string dataBaseName = "mydb";
有了这些要点,就我而言,您的代码至少可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.