C语言.NET技术10

  • 格式:doc
  • 大小:239.50 KB
  • 文档页数:8

第10章数据库备份与恢复10.1 数据库备份与恢复模块简介数据库中的数据是以往工作的积累和结晶,也是以后工作的基础和必要条件,离开这些数据和文件大多数单位的业务无法正常开展甚至是全面瘫痪,因此可以说数据和文件是无价的。

由此看来数据库的备份与恢复对于一个软件系统来说,是至关重要的。

10.2 界面设计本章介绍的数据库的备份与恢复模块使用了DriveListBox和DirListBox控件,这两个控件用于选择或设置数据库的备份路径,但它们不在默认的工具箱中,需要按照前面介绍的方法将其添加到工具箱中,如图10-1所示。

图10-1 添加DriveListBox和DirListBox控件到工具箱添加后,可以在工具箱中找到DriveListBox和DirListBox控件,依次双击这两个控件,可以看到解决方案资源管理器中添加了对“patibility”和“Microsoft.VisualBasic”的引用,如图10-2所示。

图10-2 解决方案资源管理器使用GroupBox、Label、TextBox、Button、DriveListBox和DirListBox控件将数据库备份与恢复模块的用户界面设计成如图10-3所示(设置好属性后)。

图10-3 数据库备份与恢复用户界面10.3 属性设置接下来进行属性设置,窗体和窗体上各控件的属性设置如表10-1所示。

10.4 编写代码设计好用户界面后,接下来的工作便是编写程序代码,本章对Access和SQL Server数据库的备份与恢复是分开进行介绍,因此本节介绍代码编写时也分成了Access数据库和SQL Server数据库两个部分进行。

10.4.1 Access数据库了解Access数据库的读者都知道,Access数据库文件是一个扩展名为.mdb的文件,使用“System.IO”命名空间中的File类的Copy方法,可以很容易实现数据库的备份与恢复操作。

可以使用.NET Framework提供公共对话框来获取备份与恢复的路径。

首先引入“System.IO”命名空间://*******************************************************************************using System.IO;//*******************************************************************************然后在代码的通用段定义两个分别用于保存Access数据库文件存放路径(accDBPath)和备份路径(accBackupPath)的变量。

//*******************************************************************************string accDBPath, accBackupPath;//*******************************************************************************单击数据库存放路径【…】按钮时,使用打开对话框OpenFileDialog选择Access数据库文件存放路径,并将其显示在相应的文本框中。

//*******************************************************************************// 数据库存放路径【…】按钮的单击事件代码//*******************************************************************************private void btnAccDBPath_Click(object sender, EventArgs e){odlgAcc.FileName = "";odlgAcc.InitialDirectory = "C:\\";odlgAcc.Filter = "mdb文件|*.mdb";if (odlgAcc.ShowDialog() == DialogResult.OK){txtAccDBPath.Text = odlgAcc.FileName;}}//*******************************************************************************//*******************************************************************************单击数据库备份路径【…】按钮时,使用文件夹浏览对话框FolderBrowserDialog选择Access数据库文件备份路径,并将其显示在相应的文本框中。

//*******************************************************************************// 数据库备份路径【…】按钮的单击事件代码//*******************************************************************************private void btnAccBackupPath_Click(object sender, EventArgs e){if (fbdlgAcc.ShowDialog() == DialogResult.OK){txtAccBackupPath.Text = fbdlgAcc.SelectedPath;}}//*******************************************************************************//*******************************************************************************单击Access数据库【备份】按钮时,按照选择的路径备份Access数据库文件。

因此接下来编写Access数据库【备份】按钮的单击事件代码如下://*******************************************************************************// Access数据库【备份】按钮的单击事件代码//*******************************************************************************private void btnAccBackup_Click(object sender, EventArgs e){try{accDBPath = txtAccDBPath.Text.Trim();string[] pathPart = accDBPath.Split('\\');string DBName = pathPart[pathPart.Length - 1];accBackupPath = txtAccBackupPath.Text.Trim() + "\\" + DBName;File.Copy(accDBPath, accBackupPath, true);MessageBox.Show("Access数据库备份成功", "备份");}catch{MessageBox.Show("请先选择数据库存放路径和备份路径", "提示");}}//*******************************************************************************//*******************************************************************************单击Access数据库【恢复】按钮时,按照选择的路径恢复Access数据库文件。

因此最后编写Access数据库【恢复】按钮的单击事件代码如下://*******************************************************************************// Access数据库【恢复】按钮的单击事件代码//*******************************************************************************private void btnAccRestore_Click(object sender, EventArgs e){try{accDBPath = txtAccDBPath.Text.Trim();string[] pathPart = accDBPath.Split('\\');string DBName = pathPart[pathPart.Length - 1];accBackupPath = txtAccBackupPath.Text.Trim() + "\\" + DBName;File.Copy(accBackupPath, accDBPath, true);MessageBox.Show("Access数据库恢复成功", "恢复");}catch{MessageBox.Show("请先选择数据库备份路径和存放路径", "提示");}}//*******************************************************************************//******************************************************************************* 10.4.2 SQL Server数据库SQL Server数据库的备份和恢复使用“backup”和“restore”SQL语句,本章仍然以第8章介绍的数据库“DBLibrary”为例。

首先引入“System.Data.SqlClient”命名空间://*******************************************************************************using System.Data.SqlClient;//*******************************************************************************在代码的通用段定义一个字符串变量“strConn”,以及一个SqlConnection类的对象“sqlConn”,代码如下://*******************************************************************************string strConn;SqlConnection sqlConn = new SqlConnection();//*******************************************************************************编写drilstSql的SelectedIndexChanged单击事件代码如下://*******************************************************************************// drilstSql的SelectedIndexChanged单击事件代码//*******************************************************************************private void drilstSql_SelectedIndexChanged(object sender, EventArgs e){dirlstSql.Path = drilstSql.Drive;}//*******************************************************************************//*******************************************************************************在控件中选择好数据库的备份路径后,将该路径显示在相应的文本框中,因此需要编写dirlstSql的SelectedIndexChanged事件代码如下://*******************************************************************************// dirlstSql的SelectedIndexChanged事件代码//*******************************************************************************private void dirlstSql_SelectedIndexChanged(object sender, EventArgs e){txtSqlBackupPath.Text = dirlstSql.Path;}//*******************************************************************************//*******************************************************************************单击SQL Server数据库【备份】按钮时,按照选择的路径备份SQL Server数据库文件。