使用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文件资源管理器,然后做保存在用户想要喜欢当你保存其他文件。任何关于这方面的想法都会很有帮助。谢谢。
您应该使用位于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.
}
}