首页 > 解决方案 > 建立连接后如何在c#中备份数据库

问题描述

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

如果它运行正确,我应该在我的桌面上有一个数据库的备份文件。

标签: c#sqlsmo

解决方案


问题出在我在备份设备项中的第一个参数上。将其更改为 dbname(或任何其他名称)解决了该问题。


推荐阅读