首页 / 网页编程 / ASP.NET / 基于.NET平台的Windows编程实战(八) 数据库管理及其他辅助功能的实现
基于.NET平台的Windows编程实战(八) 数据库管理及其他辅助功能的实现2009-11-23 博客园 Asidy申明:本系列课程是专为新手们写来入门练习用的,目的是想通过一个完整的问卷调查管理系统案例来让新手们了解、加深或是熟悉项目的开发流程及在.NET平台上使用VS2005和C# 进行Windows方面的编程;在整个课程的设计上,我尽量避开或是根本不讨论底层的以及性能优化等方面的东西,故高手完全可以无视本系列课程。本课将带领大家一起来实现数据库导出与还原、窗口管理等辅助功能。这些功能并非本案例系统的主要功能,只是一些辅助上的功能,故本课程的只是提取几个功能出来简单的讲解一下其实现的原理或方法,至于其设计的思路在这里就不讲了,似乎没有什么可讲的^_^下面进入主题吧……一、数据库导出与还原功能的实现大家在一些系统里应该也看到过数据库导出与还原的功能,不知道大家在使用的时候有没有去想过其实现的原理?其实,其实现的原理与逻辑是非常之简单的:导出时,找到其数据库存放的位置及其名称,之后用一个File.Copy()方法将其COPY到新的位置即可;而还原,正好是相反,即从新的位置COPY到当前系统数据库的位置,并覆盖掉当前系统的数据库;其实现的代码如下所示:/**//// <summary>
/// 导出数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BakDbToolStripMenuItem_Click(object sender, EventArgs e)
{
string dbpath = @"....DataBaseLj_QuestionnaireSys.mdb";//获取当前数据库路径,如有问题请在前面加上"....",但在发布时要去掉前面的"...."
string _dbpath = dbpath.Substring(dbpath.LastIndexOf("\"));//取出数据库的名称
SaveFileDialog saveFileDialog = new SaveFileDialog();//打开保存路径的对话框
saveFileDialog.Filter = "Access数据库文件(*.mdb)|*.mdb"; //设置保存的文件类型
saveFileDialog.Title = "请选择保存的路径";//对话框标题
saveFileDialog.RestoreDirectory = true;//当对话框关闭前还原到当前目录状态
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
File.Copy(dbpath, saveFileDialog.FileName,true);//将数据库文件复制到选择的新路径位置
MessageBox.Show("导出成功!请妥善保管好您所导出的数据库!^_^","操作提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch (Exception)
{
MessageBox.Show("导出失败!请重新导出!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
/**//// <summary>
/// 还原数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RDbToolStripMenuItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("注:此操作将会还原掉现有的数据库,且不可恢复,请谨慎操作!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
{
string dbpath = @"....DataBaseLj_QuestionnaireSys.mdb";//获取当前数据库路径,如连接有问题请在前面加上"....",但在发布时要去掉前面的"...."
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Access数据库文件(*.mdb)|*.mdb";
ofd.Title = "请选择要还原的数据库,并打开";
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
try
{
File.Copy(ofd.FileName, dbpath, true);//将选择要还原的数据库覆盖掉当前的数据库
MessageBox.Show("还原成功!请刷新相应列表!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception)
{
MessageBox.Show("还原失败!请检查要还原的数据库是否正确!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}