C#实现数据库的备份与还原

*************************************** 数据库备份 ******************************
方法一:(需引用sqldmo.dll)
public   static   void  DbBackup()
{
    SQLDMO.Backup oBackup 
= new SQLDMO.BackupClass();
    SQLDMO.SQLServer oSQLServer 
= new SQLDMO.SQLServerClass();
    
try
    
{
        oSQLServer.LoginSecure 
= false;
        oSQLServer.Connect(
"localhost""sa""1234");
        oBackup.Action 
= SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
        oBackup.Database 
= "Northwind";
        oBackup.Files 
= @"d:Northwind.bak";
        oBackup.BackupSetName 
= "Northwind";
        oBackup.BackupSetDescription 
= "数据库备份";
        oBackup.Initialize 
= true;
        oBackup.SQLBackup(oSQLServer);
    }

    
catch
    
{
        
throw;
    }

    
finally
    
{
        oSQLServer.DisConnect();
    }

}



方法二:
在事件里填写如下
SaveFileDialog sfd 
=   new  SaveFileDialog();
string  backPath  = "" ;
sfd.Filter
=   " *.bak|*.bak|*.back|*.back "  ;
sfd.InitialDirectory
= @" C: " ;
sfd.FilterIndex
= 1 ;
sfd.RestoreDirectory
= true ;
if (sfd.ShowDialog() == DialogResult.OK)
{
    backPath 
= sfd.FileName.ToString();
    SqlConnection con 
=li.createCon();
    SqlCommand cmdBK 
= new SqlCommand();
    cmdBK.CommandType 
= CommandType.Text;
    cmdBK.Connection 
= con;
    cmdBK.CommandText 
= @"backup database GJJ to disk='"+backPath+"' with init";
    
try 
    
{
        con.Open();
        cmdBK.ExecuteNonQuery();
        MessageBox.Show(
"数据库备份成功","数据库备份",MessageBoxButtons.OK,MessageBoxIcon.Warning);
    }

    
catch(Exception ex) 
    
{
        MessageBox.Show(ex.Message);
    }

    
finally
    
{
        con.Close();
        con.Dispose();
    }

}


************************************** 数据库还原 ********************************************
在使用这个方法之前先引用sqldmo.dll


还原数据库

用于数据库还原的方法
        
调用killspid存储过程,杀掉进程(注意:此存储过程放在master库中,下面的连接字符串连接到此库)
 

你可能感兴趣的:(.net专题,C#,ADO.NET,.net专题,SQL,Server高级管理)