用asp.net还原与恢复sqlserver数据库(2)

分类: asp.net技巧   出处:iocblog整理  更新时间:2008-11-24   添加到收藏  

         /// <summary>[来源 www.iocblog.net]

         /// 数据库备份

         /// </summary>

         public  bool dbbackup(string url)

         {

              sqldmo.backup obackup = new sqldmo.backupclass();

              sqldmo.sqlserver osqlserver = new sqldmo.sqlserverclass();

              try

              {

                   osqlserver.loginsecure = false;

                   osqlserver.connect(server,uid, pwd);

                   obackup.action = sqldmo.sqldmo_backup_type.sqldmobackup_database;

                   obackup.database = database;

                   obackup.files = url;//"d: orthwind.bak";

                   obackup.backupsetname = database;

                   obackup.backupsetdescription = "数据库备份";

                   obackup.initialize = true;

                   obackup.sqlbackup(osqlserver);

                   return true;

              }

              catch

              {

                   return false;

                   throw;

              }

              finally

              {

                   osqlserver.disconnect();

              }

         }

 

         /// <summary>

         /// 数据库恢复

         /// </summary>

         public string dbrestore(string url)

         {

              if(exepro()!=true)//执行存储过程

              {

                   return "操作失败";

              }

              else

              {

                   sqldmo.restore orestore = new sqldmo.restoreclass();

                   sqldmo.sqlserver osqlserver = new sqldmo.sqlserverclass();

                   try

                   {

                        osqlserver.loginsecure = false;

                        osqlserver.connect(server, uid, pwd);

                        orestore.action = sqldmo.sqldmo_restore_type.sqldmorestore_database;

                        orestore.database = database;

                        orestore.files = url;//@"d: orthwind.bak";

                        orestore.filenumber = 1;

                        orestore.replacedatabase = true;

                        orestore.sqlrestore(osqlserver);

                       return "ok";

                   }

                   catch(exception e)

                   {

                       return "恢复数据库失败";

                       throw;

                   }

                   finally

                   {

                        osqlserver.disconnect();

                   }

              }

         }

          private bool exepro()

         {

              sqlconnection conn1 = new sqlconnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");

              sqlcommand cmd = new sqlcommand("killspid",conn1);

              cmd.commandtype = commandtype.storedprocedure;

              cmd.parameters.add("@dbname","port");

              try

              {

                   conn1.open();

                   cmd.executenonquery();

                   return true;

              }

              catch(exception ex)

              {

                   return false;

              }

              finally

              {

                   conn1.close();

              }

 

         }

     }

}

上一页 [1] [2]


Tag: 还原 ,恢复



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。