如何在vb.net中备份ms access数据库?

use*_*269 2 vb.net ms-access

如何在vb.net中备份ms access数据库?我们要为某个公司制作一个系统,但我们的老师根本不会教我们,请帮忙.有什么想法怎么做?

Bob*_*bby 9

备份Access-Database(或任何单文件数据库)的最简单方法是简单地复制文件.但要注意Exception,因为文件可能被锁定.

System.IO.File.Copy( _
    "C:\Your\original\database.mdb", _
    String.Format("D:\BackUps\{0:yyyyMMdd}.mdb", Date.Today) _
)
Run Code Online (Sandbox Code Playgroud)

此外,您可以允许用户指定应将文件复制到的位置和文件名.这是一个相当简单的方法,只需简单地利用System.Windows.Forms控件OpenFileDialogSaveFileDialog.

Using openDialog As New OpenFileDialog()
    openDialog.CheckFileExists = True
    openDialog.CheckPathExists = True
    openDialog.Filter = "Microsoft Access Database (*.mdb)|*.mdb"
    openDialog.RestoreDirectory = True

    Using saveDialog As New SaveFileDialog()
        saveDialog.CheckFileExists = False
        saveDialog.CheckPathExists = True
        saveDialog.FileName = Date.Now.ToString("yyyyMMdd") & ".mdb"
        saveDialog.Filter = "Microsoft Access Database (*.mdb)|*.mdb"
        saveDialog.RestoreDirectory = True

        If openDialog.ShowDialog() = Windows.Forms.DialogResult.OK AndAlso saveDialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
            If File.Exists(openDialog.FileName) Then
                File.Copy(openDialog.FileName, saveDialog.FileName)
            End If
        End If
    End Using
End Using
Run Code Online (Sandbox Code Playgroud)

如果您想知道这些RestoreDirectory属性正在做什么:这两个对话框正在将应用程序的当前目录移动到指定的路径,如果您假设当前目录仍然不变,这可能会产生有趣的效果.为防止此行为,我们设置此属性.

  • 我想如果你想备份一个文件,你希望该备份可用.使用文件系统副本执行此操作可能会在99%的时间内正常工作,但是其他1%会成为问题. (3认同)