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

本文介绍了两种SQL数据库的备份方法及一种还原方法。方法一利用sqldmo.dll进行备份;方法二通过SaveFileDialog选择备份路径并执行备份命令。此外,还提供了一种使用OpenFileDialog选择备份文件并执行还原的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

***************************************数据库备份******************************
方法一:(需引用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库中,下面的连接字符串连接到此库)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值