在C#中運(yùn)用SQLDMO備份和恢復(fù)Microsoft SQL Server數(shù)據(jù)庫(kù)
2024-07-21 02:23:39
供稿:網(wǎng)友
在c#中運(yùn)用sqldmo備份和恢復(fù)microsoft sql server數(shù)據(jù)庫(kù)
sqldmo(sql distributed management objects,sql分布式管理對(duì)象)封裝了microsoft sql server數(shù)據(jù)庫(kù)中的對(duì)象。sqldmo是microsoft sql server中企業(yè)管理器所使用的應(yīng)用程序接口,所以它可以執(zhí)行很多功能,其中當(dāng)然也包括對(duì)數(shù)據(jù)庫(kù)的備份和恢復(fù)。
sqldmo由microsoft sql server自帶的sqldmo.dll提供,由于sqldmo.dll是一個(gè)com對(duì)象,所以大家在用之前必須在.net項(xiàng)目中添加對(duì)它的引用,如下圖所示:
下面是用c#語(yǔ)言書寫的用于microsoft sql server數(shù)據(jù)庫(kù)備份和恢復(fù)的類:
using system;
namespace dbservice
{
/// <summary>
/// dboper類,主要應(yīng)用sqldmo實(shí)現(xiàn)對(duì)microsoft sql server數(shù)據(jù)庫(kù)的備份和恢復(fù)
/// </summary>
public sealed class dboper
{
/// <summary>
/// dboper類的構(gòu)造函數(shù)
/// </summary>
private dboper()
{
}
/// <summary>
/// 數(shù)據(jù)庫(kù)備份
/// </summary>
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 = "數(shù)據(jù)庫(kù)備份";
obackup.initialize = true;
obackup.sqlbackup(osqlserver);
}
catch
{
throw;
}
finally
{
osqlserver.disconnect();
}
}
/// <summary>
/// 數(shù)據(jù)庫(kù)恢復(fù)
/// </summary>
public static void dbrestore()
{
sqldmo.restore orestore = new sqldmo.restoreclass();
sqldmo.sqlserver osqlserver = new sqldmo.sqlserverclass();
try
{
osqlserver.loginsecure = false;
osqlserver.connect("localhost", "sa", "1234");
orestore.action = sqldmo.sqldmo_restore_type.sqldmorestore_database;
orestore.database = "northwind";
orestore.files = @"d:/northwind.bak";
orestore.filenumber = 1;
orestore.replacedatabase = true;
orestore.sqlrestore(osqlserver);
}
catch
{
throw;
}
finally
{
osqlserver.disconnect();
}
}
}
}
這段代碼雖然很短,但是卻很實(shí)用,希望能夠?qū)Υ蠹矣兴鶐椭?)
,歡迎訪問(wèn)網(wǎng)頁(yè)設(shè)計(jì)愛(ài)好者web開發(fā)。