使用c#访问数据库备份

本文关键字:备份 数据库 访问 使用 | 更新日期: 2023-09-27 18:08:29

嗨,我用c#创建了一个wpf应用程序,使用Access作为数据库。我试图创建一个备份,用户将点击备份按钮,然后文件资源管理器窗口将打开,以便用户可以选择他们想要保存备份的地方。我在网站上看了看,有几个主题,但我没有看到一个文件资源管理器被称为。我知道如何使用以下命令创建备份副本:

     private void BackupDatabase_Click(object sender, RoutedEventArgs e)
    {
        File.Copy("Results_West.mdb", "Results_WestBak.mdb", true);
    }

上面的工作和保存备份的可执行文件所在的位置,但我不知道如何调用windows文件资源管理器,然后做保存在用户想要喜欢当你保存其他文件。任何关于这方面的想法都会很有帮助。谢谢。

使用c#访问数据库备份

您应该使用位于Microsoft.Win32命名空间下的SaveFileDialog

SaveFileDialog实际上不做任何保存工作,它只是一个帮助你获得目标文件路径的对话框。

savefiledidialog . showdialog()将显示对话框,当用户关闭对话框时(例如:通过接受或拒绝),它将返回一个可空的布尔值,以指示对话框是被接受、拒绝还是取消。

如果ShowDialog()返回true,你应该有一个文件路径(字符串),你可以在你的copy方法中使用。

我希望这能帮助你理解。我附了一些代码来帮助。

public void BackupDatabase()
{
    // The relative or full path of the database that you want to copy
    string fileToBackup = "Results_West.mdb";
    // The directory the save file dialog opens by default
    // --- Optional ---
    string initialFilePath = @"C:'Backup";
    // Initialize the sfd
    SaveFileDialog sfd = new SaveFileDialog
    {
        Title = "Choose a destination for your backup.",
        Filter = "Microsoft Access File|*.mdb",
        // --- Optional ---
        InitialDirectory = initialFilePath,
    };
    // sfd.ShowDialog() returns a nullable bool
    // If it returns true, you should have enough information to work with.
    // We need to escape if the result is not true.
    if (sfd.ShowDialog() != true)
    {
        return;
    }
    try
    {
        // sfd.FileName is the full path that the user selected.
        // 3rd parameter (true) specifies overwrite
        File.Copy(fileToBackup, sfd.FileName, true);
    }
    catch
    {
        // Failed to copy file.
    }
}