手机
当前位置:查字典教程网 >编程开发 >C#教程 >sqlserver备份还原数据库功能封装分享
sqlserver备份还原数据库功能封装分享
摘要:复制代码代码如下: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() ;

}

}

}

}

【sqlserver备份还原数据库功能封装分享】相关文章:

C#连接Oracle数据库的实例方法

C#:(变量)字段和局部变量的作用域冲突

c# 抓取Web网页数据分析

C#版的 Escape() 和 Unescape() 函数分享

利用C#实现分布式数据库查询

C#实现大数字运算的实例代码

深入分析C#连接Oracle数据库的连接字符串详解

c# 方法可变数量的参数

C#序列化成XML注意细节

深入IComparable与IComparer的排序实例详解

精品推荐
分类导航