Net下的数据备份和还原

发布时间: 2007-01-24 11:37    作者: 未知    来源: 未知    浏览:    评论

数据库: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() == "CgRecord".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 ;
}


TAG

Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多