欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【.Net下的数据备份和还原】,下面是详细的分享!
.Net下的数据备份和还原
数据库:SQL Server ;引用SQLDMO
◆数据备份 :
/// <summary>
/// 备份数据库
/// </summary>
private void btnBackUp_Click(object sender, System.EventArgs e)
{
this.Cursor=Cursors.WaitCursor;
this.label1.Text=" 正在进行档案库的数据备份,这可能需要几秒到几十的时间,请稍候...";
this.label1.Visible=true;
this.label1.Refresh();
this.pBar1.Visible=true;
//------------------------------------------------------------------------------------
string selfName=“D:\NorthwindBak“;
string deviceName=“NorthwindBak“;
string remark="备份测试";
//◆数据备份:
SQLDMO.Backup oBackup=new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer=new SQLDMO.SQLServerClass();
oBackup.Action=0 ;
oBackup.Initialize=true ;
SQLDMO.BackupSink_PercentCompleteEventHandler pceh=new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
oBackup.PercentComplete +=pceh;
try
{
oSQLServer.LoginSecure=false;
oSQLServer.Connect(Common.MySettings.SqlServerName, "sa", "");
oBackup.Action=SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database="Northwind";//数据库名
oBackup.Files=selfName;//文件路径
oBackup.BackupSetName=deviceName;//备份名称
oBackup.BackupSetDescription=remark;//备份描述
oBackup.Initialize=true;
oBackup.SQLBackup(oSQLServer);
}
catch(System.Exception ex)
{
Common.ShowMsg("数据备份失败:\n" + ex.ToString());
}
finally
{
oSQLServer.DisConnect();
}
//------------------------------------------------------------------------------------
this.label1.Visible=false;
this.pBar1.Visible=false;
this.Cursor=Cursors.Default;
}
/// <summary>
/// 显示备份进度条
/// </summary>
private void Step(string message,int percent)
{
this.pBar1.Value=percent ;
}
◆数据还原 :
/// <summary>
/// 还原数据库
/// </summary>
private void btnRestore_Click(object sender, System.EventArgs e)
{
this.Cursor=Cursors.WaitCursor;
this.label1.Text=" 正在进行档案库的数据还原,这可能需要几秒到几十的时间,请稍候...";
this.label1.Visible=true;
this.label1.Refresh();
this.pBar1.Visible=true;
//------------------------------------------------------------------------------------
string fileName="NorthwindBak";
string filePath="D:\NorthwindBak";
string remark="备份测试";
SQLDMO.Restore oRestore=new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer=new SQLDMO.SQLServerClass();
oRestore.Action=0 ;
SQLDMO.RestoreSink_PercentCompleteEventHandler pceh=new SQLDMO.RestoreSink_PercentCompleteEventHandler(Step);
oRestore.PercentComplete +=pceh;
try
{
oSQLServer.Connect(Common.MySettings.SqlServerName, "sa", "");
SQLDMO.QueryResults qr=oSQLServer.EnumProcesses(-1) ;
int iColPIDNum=-1 ;
int iColDbName=-1 ;
//杀死其它的连接进程
for(int i=1;i<=qr.Columns;i++)
{
string strName=qr.get_ColumnName(i) ;
if (strName.ToUpper().Trim()=="SPID")
{
iColPIDNum=i ;
}
else if (strName.ToUpper().Trim()=="DBNAME")
{
iColDbName=i ;
}
if (iColPIDNum !=-1 && iColDbName !=-1)
break ;
}
for(int i=1;i<=qr.Rows;i++)
{
int lPID=qr.GetColumnLong(i,iColPIDNum) ;
string strDBName=qr.GetColumnString(i,iColDbName) ;
if (strDBName.ToUpper()=="Northwind".ToUpper())
oSQLServer.KillProcess(lPID) ;
}
oRestore.Action=SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database="Northwind";
oRestore.Files=filePath;
oRestore.FileNumber=1;
oRestore.ReplaceDatabase=true;
oRestore.SQLRestore(oSQLServer);
}
catch(System.Exception ex)
{
Common.ShowMsg("数据还原失败:\n" + ex.ToString());
}
finally
{
oSQLServer.DisConnect();
}
//------------------------------------------------------------------------------------
this.label1.Visible=false;
this.pBar1.Visible=false;
this.Cursor=Cursors.Default;
}
/// <summary>
/// 显示还原进度条
/// </summary>
private void Step(string message,int percent)
{
this.pBar1.Value=percent ;
}
以上所分享的是关于.Net下的数据备份和还原,下面是编辑为你推荐的有价值的用户互动:
相关问题:数据库备份和恢复的作用和价值
答:数据库备份和恢复的作用和价值主要体现在以下几个方面: 1、提高系统的高可用性和灾难可恢复性,在数据库系统崩溃的时候,没有数据库备份就没法找到数据。 2、使用数据库备份还原数据库是数据库系统崩溃时提供数据恢复最小代价的最优方案,如果... >>详细
相关问题:在ASP.NET中怎么实现数据备份与数据恢复
答:asp在线备份sql server数据库: 1、备份 >>详细
相关问题:电脑如何备份和还原?
答:1、电脑的备份指的是电脑系统安装以后,立即重启,重启时会有启动菜单分别是系统和备份,选择系统下一个内容就是备份。备份的过程与安装系统的过程和时间基本一致,备份的路径就在电脑最后一个分区内,它的备份以后的名称就是ghost。电脑会为了... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
