建立连接后如何在C#中备份数据库

时间:2019-07-26 16:50:25

标签: c# sql smo

我已经编写了用于访问和显示给定服务器内所有数据库的代码。现在,我正在尝试实际执行备份过程,并将文件保存到桌面上。但是,当到达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);
        }
    }

如果运行正常,我应该在桌面上拥有数据库的备份文件。

1 个答案:

答案 0 :(得分:0)

问题出在backupdeviceitem中的第一个参数。将其更改为dbname(或任何其他名称)可以解决此问题。