首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

在 C# 中運用 SQLDMO 備份與還原 Microsoft SQL Server 資料庫

     編輯:關於C語言

SQLDMO (SQL Distributed Management Objects,SQL 分散式管理物件) 封裝了 Microsoft SQL Server 資料庫中的物件。SQLDMO 是 Microsoft SQL Server 企業管理員所使用的應用程式介面,因此當然包含資料庫備份與還原功能。

SQLDMO 由 Microsoft SQL Server 附帶的 SQLDMO.dll 提供,因 SQLDMO.dll 為 COM 物件,故在 .NET 專案中使用前必須加入對它的參考。

下面是用 C# 撰寫的 Microsoft SQL Server 資料庫備份與還原類別:

using System;
namespace DbService
{
    /// <summary>
    /// DbOper 類別,主要應用 SQLDMO 實現對 Microsoft SQL Server 資料庫的備份與還原
    /// </summary>
    public sealed class DbOper
    {
        /// <summary>
        /// DbOper 類別建構函數
        /// </summary>
        private DbOper() { }

        /// <summary>
        /// 資料庫備份
        /// </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 = "資料庫備份";
                oBackup.Initialize = true;
                oBackup.SQLBackup(oSQLServer);
            }
            catch
            {
                throw;
            }
            finally
            {
                oSQLServer.DisConnect();
            }
        }

        /// <summary>
        /// 資料庫還原
        /// </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();
            }
        }
    }
}

這段代碼雖短卻實用,希望能幫助大家。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved