我已经编写了用于访问和显示给定服务器内所有数据库的代码。现在,我正在尝试实际执行备份过程,并将文件保存到桌面上。但是,当到达SQLBackup()
时,我得到
SqlException:无法打开备份设备。
我尝试将文件路径更改为其他位置。将文件类型指定为.bak
。将其更改为服务器名称本身,但我仍然遇到相同的错误。
public static void Backup(string dbName, string connString)
{
if (string.IsNullOrEmpty(dbName)) //check if a database name has been entered
{
WriteLine("Database name cannot be blank. Enter a Database to back up");
}
else
{
SqlConnection objconnection = new SqlConnection(connString);
ServerConnection con = new ServerConnection(objconnection.DataSource.ToString());
Server server = new Server(con);
Backup source = new Backup();
source.Action = BackupActionType.Database;
source.Database = dbName;
BackupDeviceItem destination = new BackupDeviceItem(@"C:\Users\me\Desktop\", DeviceType.File);
source.Devices.Add(destination);
source.SqlBackup(server);
}
}
如果运行正常,我应该在桌面上拥有数据库的备份文件。
答案 0 :(得分:0)
问题出在backupdeviceitem中的第一个参数。将其更改为dbname(或任何其他名称)可以解决此问题。