国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

csharp: SQL Server 2005 Database Backup and Restore using C#

2019-11-17 02:34:55
字體:
來源:轉載
供稿:網友

csharp: SQL Server 2005 Database Backup and Restore using C#

1.第一種方式: using SQLDMO;//Microsoft SQLDMO Object Library 8.0

 /// <summary>        /// 數據庫的備份        /// 涂聚文注:數據庫的備份和實時進度顯示代碼:(遠程備份在數據庫原本地,如果在數據庫安裝的電腦上備份,就可以自行選擇文件夾地址,不能備份在客戶端的電腦上)        /// 20150205        /// 默認: C:/PRogram Files/Microsoft SQL Server/MSSQL.1/MSSQL/Backup (我裝了2000,20005)        /// </summary>        /// <param name="ServerName"></param>        /// <param name="UserName"></param>        /// <param name="PassWord"></param>        /// <param name="strDbName"></param>        /// <param name="strFileName"></param>        /// <param name="pgbMain"></param>        /// <returns></returns>         public bool BackUPDB(string ServerName, string UserName, string Password, string strDbName, string strFileName, ProgressBar pgbMain)        {            PBar = pgbMain;            SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();            try            {                svr.Connect(ServerName, UserName, Password);                SQLDMO.Backup bak = new SQLDMO.BackupClass();                bak.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;// 0;                                SQLDMO.BackupSink_PercentCompleteEventHandler pceh = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);                bak.PercentComplete += pceh;                bak.BackupSetDescription = "數據庫備份";                bak.Files = strFileName;                bak.Database = strDbName;                bak.Initialize = true;                bak.SQLBackup(svr);                return true;            }            catch (Exception err)            {                throw (new Exception("備份數據庫失敗" + err.Message));                //return false ;                 //MessageBox.Show("備份數據庫失敗"+err.Message);            }            finally            {                svr.DisConnect();            }        }        /// <summary>        /// 數據庫的恢復的代碼:        /// </summary>        /// <param name="ServerName"></param>        /// <param name="UserName"></param>        /// <param name="Password"></param>        /// <param name="strDbName"></param>        /// <param name="strFileName"></param>        /// <param name="pgbMain"></param>        /// <returns></returns>         public bool RestoreDB(string ServerName, string UserName, string Password, string strDbName, string strFileName, ProgressBar pgbMain)        {            PBar = pgbMain;            SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();            try            {                svr.Connect(ServerName, UserName, Password);                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() == "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() == strDbName.ToUpper())                        svr.KillProcess(lPID);                }                SQLDMO.Restore res = new SQLDMO.RestoreClass();                res.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database; //0;                SQLDMO.RestoreSink_PercentCompleteEventHandler pceh = new SQLDMO.RestoreSink_PercentCompleteEventHandler(Step);                res.PercentComplete += pceh;                res.Files = strFileName;                res.Database = strDbName;                res.ReplaceDatabase = true;                res.SQLRestore(svr);                return true;            }            catch (Exception err)            {                throw (new Exception("恢復數據庫失敗,請關閉所有和該數據庫連接的程序!" + err.Message));                //return false ;                 //MessageBox.Show("恢復數據庫失敗,請關閉所有和該數據庫連接的程序!"+err.Message);            }            finally            {                svr.DisConnect();            }        }

2.第二種方式:

https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.backup.aspx

https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.restore.aspx

/// <summary>    /// https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.backup.aspx    /// https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.restore.aspx    /// </summary>    public class RestoreHelper    {        /// <summary>        ///         /// </summary>        public RestoreHelper()        {        }        /// <summary>        /// 還原數據庫        /// 涂聚文        /// </summary>        /// <param name="databaseName"></param>        /// <param name="filePath"></param>        /// <param name="serverName"></param>        /// <param name="userName"></param>        /// <param name="password"></param>        /// <param name="dataFilePath"></param>        /// <param name="logFilePath"></param>        public void RestoreDatabase(String databaseName, String filePath, String serverName, String userName, String password, String dataFilePath, String logFilePath)        {            try            {                Restore sqlRestore = new Restore();                BackupDeviceItem deviceItem = new BackupDeviceItem(filePath, DeviceType.File);                sqlRestore.Devices.Add(deviceItem);                sqlRestore.Database = databaseName;                ServerConnection connection = new ServerConnection(serverName, userName, password);                Server sqlServer = new Server(connection);                Database db = sqlServer.Databases[databaseName];                sqlRestore.Action = RestoreActionType.Database;                String dataFileLocation = dataFilePath + databaseName + ".mdf";                String logFileLocation = logFilePath + databaseName + "_Log.ldf";                db = sqlServer.Databases[databaseName];                RelocateFile rf = new RelocateFile(databaseName, dataFileLocation);                sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName, dataFileLocation));                sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName + "_log", logFileLocation));                sqlRestore.ReplaceDatabase = true;                sqlRestore.Complete += new ServerMessageEventHandler(sqlRestore_Complete);                sqlRestore.PercentCompleteNotification = 10;                sqlRestore.PercentComplete += new PercentCompleteEventHandler(sqlRestore_PercentComplete);                sqlRestore.SqlRestore(sqlServer);                db = sqlServer.Databases[databaseName];                db.SetOnline();                sqlServer.Refresh();            }            catch (SqlServerManagementException ex)            {                ex.Message.ToString();            }        }        public event EventHandler<PercentCompleteEventArgs> PercentComplete;        /// <summary>        ///         /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        void sqlRestore_PercentComplete(object sender, PercentCompleteEventArgs e)        {            if (PercentComplete != null)                PercentComplete(sender, e);        }        public event EventHandler<ServerMessageEventArgs> Complete;        /// <summary>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 旌德县| 涞源县| 桃园县| 开封县| 北辰区| 白玉县| 清丰县| 务川| 上饶县| 徐汇区| 大名县| 建湖县| 蕉岭县| 濮阳县| 镇雄县| 香格里拉县| 沈丘县| 郑州市| 彭山县| 尼玛县| 东兴市| 肥城市| 饶阳县| 东海县| 萍乡市| 壤塘县| 台北市| 临清市| 宁乡县| 子长县| 东乡族自治县| 阿拉善左旗| 固原市| 沈阳市| 平和县| 突泉县| 蒙山县| 三原县| 吴江市| 沭阳县| 华宁县|