论文课程网站 建设背景,安溪网页设计,html论坛源码,东莞小程序建设我们知道#xff0c;用SQLDMO可以实现对数据库的备份与恢复#xff0c;下面给出简单的实现方法。首先需要添加对SQLDMO引用1.实现数据库的备份#xff1a;1/**//// summary 2 /// 数据库备份 3 /// /summary 4 /// returns备份…我们知道用SQLDMO可以实现对数据库的备份与恢复下面给出简单的实现方法。首先需要添加对SQLDMO引用1.实现数据库的备份 1/**//// summary 2 /// 数据库备份 3 /// /summary 4 /// returns备份是否成功/returns 5 public bool DbBackup() 6 { 7 string path CreatePath(); 8 SQLDMO.Backup oBackup new SQLDMO.BackupClass(); 9 SQLDMO.SQLServer oSQLServer new SQLDMO.SQLServerClass();10 try11 {12 oSQLServer.LoginSecure false;13 oSQLServer.Connect(server,uid, pwd);14 oBackup.Action SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;15 oBackup.Database database;16 oBackup.Files path;17 oBackup.BackupSetName database;18 oBackup.BackupSetDescription 数据库备份;19 oBackup.Initialize true;20 oBackup.SQLBackup(oSQLServer);2122 return true;23 }24 catch(Exception ex)25 {26 return false;27 throw ex;28 }29 finally30 {31 oSQLServer.DisConnect();32 }33 }2.实现数据库恢复在恢复时要注意先杀掉当前数据库的所有进程 1/**//// summary 2 /// 数据库恢复 3 /// /summary 4 public string DbRestore() 5 { 6 if(exepro()!true)//执行存储过程 7 { 8 return 操作失败; 9 }10 else11 {12 SQLDMO.Restore oRestore new SQLDMO.RestoreClass();13 SQLDMO.SQLServer oSQLServer new SQLDMO.SQLServerClass();14 try15 {16 exepro();17 oSQLServer.LoginSecure false;18 oSQLServer.Connect(server, uid, pwd);19 oRestore.Action SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;20 oRestore.Database database;21 /**////自行修改22 oRestore.Files d:\aaa\aaa.bak;23 oRestore.FileNumber 1;24 oRestore.ReplaceDatabase true;25 oRestore.SQLRestore(oSQLServer);2627 return ok;28 }29 catch(Exception e)30 {31 return 恢复数据库失败;32 throw e;33 }34 finally35 {36 oSQLServer.DisConnect();37 }38 }39 }40 41 /**//// summary42 /// 杀死当前库的所有进程43 /// /summary44 /// returns/returns45 private bool exepro()46 {4748 SqlConnection conn1 new SqlConnection(serverserver;uiduid;pwdpwd;databasemaster);49 SqlCommand cmd new SqlCommand(killspid,conn1);50 cmd.CommandType CommandType.StoredProcedure;51 cmd.Parameters.Add(dbname,aaa);52 try53 {54 conn1.Open();55 cmd.ExecuteNonQuery();56 return true;57 }58 catch(Exception ex)59 {60 return false;61 }62 finally63 {64 conn1.Close();65 }66 }完整的操作类如下 1using System; 2using System.Collections; 3using System.Data; 4using System.Data.SqlClient; 5 6namespace DbBackUp 7{ 8 /**//// summary 9 /// 创建人Terrylee 10 /// 创建时间2005年8月1日 11 /// 功能描述实现数据库的备份和还原 12 /// 更新记录 13 /// /summary 14 public class DbOperate 15 { 16 /**//// summary 17 /// 服务器 18 /// /summary 19 private string server; 20 21 /**//// summary 22 /// 登录名 23 /// /summary 24 private string uid; 25 26 /**//// summary 27 /// 登录密码 28 /// /summary 29 private string pwd; 30 31 /**//// summary 32 /// 要操作的数据库 33 /// /summary 34 private string database; 35 36 /**//// summary 37 /// 数据库连接字符串 38 /// /summary 39 private string conn; 40 41 /**//// summary 42 /// DbOperate类的构造函数 43 /// 在这里进行字符串的切割获取服务器登录名密码数据库 44 /// /summary 45 public DbOperate() 46 { 47 conn System.Configuration.ConfigurationSettings.AppSettings[constr].ToString(); 48 server StringCut(conn,server,;); 49 uid StringCut(conn,uid,;); 50 pwd StringCut(conn,pwd,;); 51 database StringCut(conn,database,;); 52 } 53 54 /**//// summary 55 /// 切割字符串 56 /// /summary 57 /// param namestr/param 58 /// param namebg/param 59 /// param nameed/param 60 /// returns/returns 61 public string StringCut(string str,string bg,string ed) 62 { 63 string sub; 64 substr.Substring(str.IndexOf(bg)bg.Length); 65 subsub.Substring(0,sub.IndexOf(;)); 66 return sub; 67 } 68 69 /**//// summary 70 /// 构造文件名 71 /// /summary 72 /// returns文件名/returns 73 private string CreatePath() 74 { 75 string CurrTime System.DateTime.Now.ToString(); 76 CurrTime CurrTime.Replace(-,); 77 CurrTime CurrTime.Replace(:,); 78 CurrTime CurrTime.Replace( ,); 79 CurrTime CurrTime.Substring(0,12); 80 string path d:\\aaa\\; 81 path database; 82 path _db_; 83 path CurrTime; 84 path .BAK; 85 return path; 86 } 87 88 /**//// summary 89 /// 数据库备份 90 /// /summary 91 /// returns备份是否成功/returns 92 public bool DbBackup() 93 { 94 string path CreatePath(); 95 SQLDMO.Backup oBackup new SQLDMO.BackupClass(); 96 SQLDMO.SQLServer oSQLServer new SQLDMO.SQLServerClass(); 97 try 98 { 99 oSQLServer.LoginSecure false;100 oSQLServer.Connect(server,uid, pwd);101 oBackup.Action SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;102 oBackup.Database database;103 oBackup.Files path;104 oBackup.BackupSetName database;105 oBackup.BackupSetDescription 数据库备份;106 oBackup.Initialize true;107 oBackup.SQLBackup(oSQLServer);108109 return true;110 }111 catch(Exception ex)112 {113 return false;114 throw ex;115 }116 finally117 {118 oSQLServer.DisConnect();119 }120 }121122 /**//// summary123 /// 数据库恢复124 /// /summary125 public string DbRestore()126 {127 if(exepro()!true)//执行存储过程128 {129 return 操作失败;130 }131 else132 {133 SQLDMO.Restore oRestore new SQLDMO.RestoreClass();134 SQLDMO.SQLServer oSQLServer new SQLDMO.SQLServerClass();135 try136 {137 exepro();138 oSQLServer.LoginSecure false;139 oSQLServer.Connect(server, uid, pwd);140 oRestore.Action SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;141 oRestore.Database database;142 /**////自行修改143 oRestore.Files d:\aaa\aaa.bak;144 oRestore.FileNumber 1;145 oRestore.ReplaceDatabase true;146 oRestore.SQLRestore(oSQLServer);147148 return ok;149 }150 catch(Exception e)151 {152 return 恢复数据库失败;153 throw e;154 }155 finally156 {157 oSQLServer.DisConnect();158 }159 }160 }161 162 /**//// summary163 /// 杀死当前库的所有进程164 /// /summary165 /// returns/returns166 private bool exepro()167 {168169 SqlConnection conn1 new SqlConnection(serverserver;uiduid;pwdpwd;databasemaster);170 SqlCommand cmd new SqlCommand(killspid,conn1);171 cmd.CommandType CommandType.StoredProcedure;172 cmd.Parameters.Add(dbname,aaa);173 try174 {175 conn1.Open();176 cmd.ExecuteNonQuery();177 return true;178 }179 catch(Exception ex)180 {181 return false;182 }183 finally184 {185 conn1.Close();186 }187 }188189 }190191}192在相应的按钮1asp:Button idwbtn_Backup runatserver Width60px Text备 份 CssClassButton/asp:Button单击事件里调用即可 1/**//// summary 2 /// 备份按钮 3 /// /summary 4 /// param namesender/param 5 /// param namee/param 6 private void wbtn_Backup_Click(object sender, System.EventArgs e) 7 { 8 DbOperate dbop new DbOperate(); 9 dbop.DbBackup();10 }