由于本人一开始学习数据库是sql sever ,现在开发用access 2003,所以在做数据库的备份与还原时,第一意识就是利用sql语句来实现,但出现了错误,说“无效的inserted ,update.delete,select”,我就意识到可能是不支持backup和restore这样的sql关键字,可能在access中不支持,但自己感觉还是不相信,从网上和图书馆查找利用sql语句来实现的信息,可是都未查找到,后来网上有些人说access不支持SQL语句备份,这和我此时的想法一致,于是就利用文件的复制来备份与恢复。很简单哦。关键代码如下:
备份:
string dataBasePath = Application.StartupPath + "\\database\\DB.mdb";
string beiFenPath;
private void buttonX2_Click(object sender, EventArgs e)
{
if (textBox1.Text.ToString().Trim() == "" || textBox2.Text.ToString().Trim() == "")
{
MessageBox.Show("输入信息不能为空");
return;
}
if (!File.Exists(dataBasePath))
{
throw new Exception("源数据库不存在,无法备份");
}
beiFenPath = textBox1.Text.ToString().Trim();
File.Copy(dataBasePath, beiFenPath + "\\" + textBox2.Text + ".mdb", true);
MessageBox.Show("数据库备份成功");
}
还原: beiFenPath = textBox1.Text.ToString().Trim();
if( !File.Exists(beiFenPath) )
{
throw new Exception("备份数据库不存在,无法修复");
}
try
{
//为了没有备份当前数据库,所以在还原前,先备份一下现在的数据库
File.Copy(dataBasePath, Application.StartupPath+"\\beifen\\"+"DB.mdb",true);
//如果有重名文件 不提示 ,直接替换
File.Copy(beiFenPath,dataBasePath, true );
MessageBox.Show("数据库还原成功");
}
catch
{
MessageBox .Show ("数据库还原失败");
}