建立连接后如何在c#中备份数据库
How to backup a database in c# after connection is established
我已经编写了代码来访问和显示给定服务器中的所有数据库。现在我正在尝试实际执行备份过程并将文件暂时保存到我的桌面。但是,当它到达 SQLBackup()
时,我得到一个
SqlException: Cannot open backup device.
我试过将文件路径更改为其他位置。将文件类型指定为 .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);
}
}
如果运行正确,我的桌面上应该有一个数据库的备份文件。
问题出在我在 backupdeviceitem 中的第一个参数。将其更改为 dbname(或任何其他名称)解决了问题。
我已经编写了代码来访问和显示给定服务器中的所有数据库。现在我正在尝试实际执行备份过程并将文件暂时保存到我的桌面。但是,当它到达 SQLBackup()
时,我得到一个
SqlException: Cannot open backup device.
我试过将文件路径更改为其他位置。将文件类型指定为 .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);
}
}
如果运行正确,我的桌面上应该有一个数据库的备份文件。
问题出在我在 backupdeviceitem 中的第一个参数。将其更改为 dbname(或任何其他名称)解决了问题。