手动备份当然是用 sqlserver manage studio,不记了
程序备份 先连接数据库:
string connstring = "server=" + 服务器 + ";User ID=" + 用户名 + ";Password=" + 密码 + ";database=master;"; sqlConnection con= new sqlConnection(_ConnString); con.open();
备份代码:
string sqlBk = "Backup DATABASE " + 数据库名 + " TO disK='" + 保存文件名(全路径的,空格好像有问题) + "'"; sqlCommand sqlCMD = null; sqlCMD = new sqlCommand(sqlBk,con); Int32 r = 0; try { sqlCMD.CommandTimeout = 0; //一直等待到结束 r = sqlCMD.ExecuteNonQuery(); MessageBox.Show("数据库备份完毕!","",MessageBoxButtons.OK,MessageBoxIcon.@R_954_4045@ion); saveP(); } catch (Exception ex) { MessageBox.Show(ex.Message,MessageBoxIcon.Error); } finally { con.Close(); }
恢复代码:
string sqlRestore = @"ALTER DATABASE '" + 数据库名 + "' SET OFFLINE WITH ROOLBACK IMMEDIATE;" //先将数据库离线比较保险,不然可能不能恢复 +"RESTORE DATABASE " + 数据库名 + " FROM disK = '" + 备份文件 + "' WITH MOVE '" + 数据库名 + "' TO '" + 新库文件路径 + @"/" + 数据库名 + ".mdf',MOVE '" + 数据库名 + "_log' TO '" + 新库文件路径 + @"/" + 数据库名 + "_log.ldf',STATS = 10,REPLACE;" +"ALTER DATABASE '" + 数据库名 + "' SET ONLINE WITH ROOLBACK IMMEDIATE;"; //恢复完成使数据库在线 sqlCommand sqlCMD = null; sqlCMD = new sqlCommand(sqlRestore,con); Int32 r = 0; try { sqlCMD.CommandTimeout = 0; //一直等待到结束 r = sqlCMD.ExecuteNonQuery(); MessageBox.Show("数据库恢复完毕!",MessageBoxIcon.@R_954_4045@ion); saveP(); } catch (Exception ex) { MessageBox.Show(ex.Message,MessageBoxIcon.Error); } finally { con.Close(); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。