c# - 使用 C# 代码备份失败

标签 c# wpf backup

我的问题是我无法使用 C# 代码在 wpf 中备份数据库。错误是“服务器‘DELL/LOCALSERVER’备份失败”。我使用的代码是这样的:

private void btnBackup_Click(对象发送者,RotedEventArgs e)

{
  if (!string.IsNullOrEmpty(txtPath.Text) && !string.IsNullOrWhiteSpace(txtPath.Text)
    && !string.IsNullOrEmpty(txtFileName.Text) && !string.IsNullOrWhiteSpace(txtFileName.Text))
  {
    BackupFilePath = txtPath.Text + "" + txtFileName.Text + ".bak";
    Server sqlServerInstance = new Server(new Microsoft.SqlServer.Management.Common.ServerConnection
      (new System.Data.SqlClient.SqlConnection(h2prdb.ConnectionString)));
    Backup objBackup = new Backup();
    objBackup.Database = "H2RPDB";
    objBackup.Action = BackupActionType.Database;
    objBackup.Devices.AddDevice(@BackupFilePath, DeviceType.File);
    objBackup.SqlBackup(sqlServerInstance);
    System.Windows.Forms.MessageBox.Show("The backup of database " + "'H2RPDB'" + " completed sccessfully", "Microsoft SQL Server Management Studio", MessageBoxButtons.OK, MessageBoxIcon.Information);
  }
  else
  {
    System.Windows.Forms.MessageBox.Show("Please fill-up all fields!",
      "Backup/Restore", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  }
}

我不知道这段代码新手有什么问题。感谢您的回答。

最佳答案

您可以使用下面提到的代码

            ServerConnection con = new ServerConnection(@"ServerName");
            Server server = new Server(con);
            Backup source = new Backup();
            source.Action = BackupActionType.Database;
            source.Database = "DBName";
            BackupDeviceItem destination = new BackupDeviceItem(@"C:\tmp\temp.bak", DeviceType.File);
            source.Devices.Add(destination);
            source.SqlBackup(server);
            con.Disconnect();

确保您已以管理员身份打开 Visual Studio 。 并且您必须包含下面提到的用于运行上述代码的引用

Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.Management.Sdk.Sfc.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.SmoExtended.dll

所有上述 DLL 您都可以在 C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies

中找到

关于c# - 使用 C# 代码备份失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24794845/

相关文章:

Azure:如何计算存储事务

MySQL 管理员备份 : "Compatibility Mode", 这到底在做什么?

C# 可以读取不存在的文件吗?

c# - 如何从文件的完整路径获取目录?

c# - 对于这种简单的 Linq 用法,我的代码效率很低

wpf - WPF 的最佳 UI 组件集是什么?

sql-server - 如何检查 SQL Server 备份文件的完整性?

c# - ASP.Net Core 1 日志记录错误 - 无法找到来自源应用程序的事件 ID xxxx 的描述

wpf - 如何更改 WPF 菜单的图标列大小?

wpf listview 失去焦点