sqlserver备份还原数据库功能封装分享
sqlserver备份还原数据库功能封装分享
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:usingSystem;usingSQLDMO;namespaceEDTBackupTool{//////Backup的摘...

复制代码 代码如下:

using System;

using SQLDMO;

namespace EDTBackupTool

{

/// <summary>

/// Backup 的摘要说明。

/// </summary>

public class SQLTools

{

public static bool Backup(string backfile){

try

{

SQLDMO.Backup backup = new BackupClass();

SQLDMO.SQLServer server = new SQLServerClass();

server.LoginSecure = true;

server.Connect(ClientCommon.CommonFunctions.DataSource,"sa","");

backup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;

backup.Database = ClientCommon.CommonFunctions.Catalog;

backup.Files =backfile;

backup.BackupSetName =ClientCommon.CommonFunctions.Catalog;

backup.BackupSetDescription = "数据库备份";

backup.Initialize = true;

backup.SQLBackup(server);

return true;

}

catch(Exception ex){

ClientCommon.ExceptionRecorder.Record(ex);

return false;

}

}

public static bool RestoreDB(string strFileName)

{

SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass() ;

try

{

svr.LoginSecure=true;

svr.Connect(ClientCommon.CommonFunctions.DataSource,"sa","") ;

SQLDMO.QueryResults qr = svr.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() == ClientCommon.CommonFunctions.Catalog)

{

iColDbName = i ;

}

if (iColPIDNum != -1 && iColDbName != -1)

break ;

}

//杀死使用strDbName数据库的进程

for(int i=1;i<=qr.Rows;i++)

{

int lPID = qr.GetColumnLong(i,iColPIDNum) ;

string strDBName = qr.GetColumnString(i,iColDbName) ;

if (strDBName.ToUpper() == ClientCommon.CommonFunctions.Catalog)

{

svr.KillProcess(lPID) ;

}

}

SQLDMO.Restore res = new SQLDMO.RestoreClass() ;

res.Action = 0 ;

res.Files = strFileName ;

res.Database = ClientCommon.CommonFunctions.Catalog ;

res.ReplaceDatabase = true ;

res.SQLRestore(svr) ;

return true ;

}

catch

{

return false;

}

finally

{

svr.DisConnect() ;

}

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类