亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

用asp.net還原與恢復sqlserver數據庫

2019-11-18 19:26:26
字體:
來源:轉載
供稿:網友

    上次做了個項目,涉及到數據庫的還原和恢復,到網上找了一下,是利用SQLDMO實現的,只要添加SQLDMO引用就好了,然后利用下邊的類的方法就可以實現了。

我把原作者的類擴充了一下,可以自動識別web.config里 的數據庫連接字符串,可以通過變量設置還原恢復的信息。

需要注意的時還原,還原的時候問題最大了,有別的用戶使用數據庫的時候無法還原,解決辦法就是在MASTER數據庫中添加一個存儲過程


create PRoc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status<>-1
begin
exec('kill '+@spid)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end
GO


在還原之前先執行這個存儲過程,需要傳遞dbname,就是你的數據庫的名字。下邊是類的原代碼:(web.config里的數據庫連接字符串是constr)
 

using System;

using System.Configuration;

using System.Data.SqlClient;

using System.Data;

namespace web.base_class

{

     /// <summary>

     /// DbOper類,主要應用SQLDMO實現對Microsoft SQL Server數據庫的備份和恢復

     /// </summary>

     public class DbOper

     {

          private string server;

          private string uid;

          private string pwd;

          private string database;

          private string conn;

         /// <summary>

         /// DbOper類的構造函數

         /// </summary>

         public DbOper()

         {

              conn=System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();

              server=cut(conn,"server=",";");

              uid=cut(conn,"uid=",";");

              pwd=cut(conn,"pwd=",";");

              database=cut(conn,"database=",";");

         }

         public string cut(string str,string bg,string ed)

         {

              string sub;

              sub=str.Substring(str.IndexOf(bg)+bg.Length);

              sub=sub.Substring(0,sub.IndexOf(";"));

              return sub;

         }

 

         /// <summary>

         /// 數據庫備份

         /// </summary>

         public  bool DbBackup(string url)

         {

              SQLDMO.Backup oBackup = new SQLDMO.BackupClass();

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

              try

              {

                   oSQLServer.LoginSecure = false;

                   oSQLServer.Connect(server,uid, pwd);

                   oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;

                   oBackup.Database = database;

                   oBackup.Files = url;//"d:/Northwind.bak";

                   oBackup.BackupSetName = database;

                   oBackup.BackupSetDescription = "數據庫備份";

                   oBackup.Initialize = true;

                   oBackup.SQLBackup(oSQLServer);

                   return true;

              }

              catch

              {

                   return false;

                   throw;

              }

              finally

              {

                   oSQLServer.DisConnect();

              }

         }

 

         /// <summary>

         /// 數據庫恢復

         /// </summary>

         public string DbRestore(string url)

         {

              if(exepro()!=true)//執行存儲過程

              {

                   return "操作失敗";

              }

              else

              {

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

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

                   try

                   {

                        oSQLServer.LoginSecure = false;

                        oSQLServer.Connect(server, uid, pwd);

                        oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;

                        oRestore.Database = database;

                        oRestore.Files = url;//@"d:/Northwind.bak";

                        oRestore.FileNumber = 1;

                        oRestore.ReplaceDatabase = true;

                        oRestore.SQLRestore(oSQLServer);

                       return "ok";

                   }

                   catch(Exception e)

                   {

                       return "恢復數據庫失敗";

                       throw;

                   }

                   finally

                   {

                        oSQLServer.DisConnect();

                   }

              }

         }

          private bool exepro()

         {

              SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");

              SqlCommand cmd = new SqlCommand("killspid",conn1);

              cmd.CommandType = CommandType.StoredProcedure;

              cmd.Parameters.Add("@dbname","port");

              try

              {

                   conn1.Open();

                   cmd.ExecuteNonQuery();

                   return true;

              }

              catch(Exception ex)

              {

                   return false;

              }

              finally

              {

                   conn1.Close();

              }

 

         }

     }

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲美女精品久久| 久久综合免费视频| 91久久久久久久久| 国产成人拍精品视频午夜网站| 国产综合在线视频| 中文字幕日韩精品有码视频| 欧美成人精品三级在线观看| 日本三级久久久| 97在线观看免费高清| 91精品国产免费久久久久久| 性视频1819p久久| 欧美www视频在线观看| 国产免费亚洲高清| 国产亚洲精品一区二区| 精品久久久久久久久久ntr影视| 欧美激情极品视频| 久久免费国产精品1| 欧美精品videosex牲欧美| 久久最新资源网| 亚洲精品国精品久久99热| 国产精品久久久久久久久久久不卡| 精品国产一区av| 国产精品第七影院| 热草久综合在线| 国产在线观看精品一区二区三区| 国产精品中文在线| 欧美精品在线免费观看| 日韩中文理论片| 亚洲一区二区日本| 日韩欧美在线免费观看| 国产成人亚洲综合91精品| 91精品国产高清自在线看超| 国产精品黄视频| 91久久在线观看| 另类视频在线观看| 国产不卡精品视男人的天堂| 欧美大肥婆大肥bbbbb| 成人免费网站在线看| 久久手机免费视频| 国产亚洲欧美另类中文| 久久久久久久久电影| 国产免费一区二区三区香蕉精| 亚洲精品www| 欧美视频13p| 国产精品久久久久久av下载红粉| 国产精品久久婷婷六月丁香| 国产成人涩涩涩视频在线观看| 精品久久国产精品| 91精品国产综合久久香蕉922| 国产亚洲欧美日韩一区二区| 国产91精品在线播放| 成人乱人伦精品视频在线观看| 成人av电影天堂| 亚洲欧洲偷拍精品| 日韩视频永久免费观看| 欧美亚州一区二区三区| 国产精品自产拍高潮在线观看| 国产成人激情视频| 国产欧美一区二区三区视频| 成人444kkkk在线观看| 国产精品成久久久久三级| 免费97视频在线精品国自产拍| 日本高清+成人网在线观看| 日韩在线观看av| 亚洲人成网在线播放| 欧美日韩另类字幕中文| 欧美特级www| 一区二区三区视频免费| 91精品国产91久久久久久| 91av视频在线观看| 精品国产乱码久久久久久虫虫漫画| 亚洲欧美日韩在线一区| 精品亚洲精品福利线在观看| 91经典在线视频| 亚洲视频视频在线| 国产精品视频免费在线观看| 国产精品中文字幕在线| 久久久免费观看| 欧美猛男性生活免费| 人人做人人澡人人爽欧美| 国产精品你懂得| 亚洲欧美色婷婷| 亚洲另类xxxx| 日韩中文字幕在线视频播放| 色综合久综合久久综合久鬼88| 亚洲精品久久久久久久久久久| 91精品视频在线播放| 最近2019中文字幕mv免费看| www.亚洲男人天堂| 亚洲欧美色婷婷| 欧美日韩成人黄色| 成人久久一区二区| 日韩在线观看免费高清完整版| 国产欧美日韩专区发布| 国产99久久精品一区二区| 久久久久久久久久久av| 欧美国产欧美亚洲国产日韩mv天天看完整| 黄色精品在线看| 亚洲国产精品小视频| 在线电影欧美日韩一区二区私密| 欧美成年人在线观看| 日韩在线中文字| 久久久视频精品| 亚洲欧洲美洲在线综合| 亚洲影院色在线观看免费| 91精品国产九九九久久久亚洲| 成人h猎奇视频网站| 亚洲欧美日韩一区在线| 国产69精品久久久久9999| 国产精品久久久久高潮| 欧美午夜视频一区二区| 久久久久久久久久国产精品| 国产欧美精品xxxx另类| www国产亚洲精品久久网站| 日本成人激情视频| 91av在线国产| 亚洲人成五月天| 欧美电影在线观看网站| 91社区国产高清| 久久99久国产精品黄毛片入口| 91精品久久久久久久久久| 精品久久久久久久久久国产| 精品动漫一区二区三区| 亚洲sss综合天堂久久| 国产午夜精品麻豆| 成人妇女淫片aaaa视频| 亚洲色图日韩av| 亚洲国产古装精品网站| 日本国产欧美一区二区三区| 亚洲成人网av| 少妇激情综合网| 国产精品视频最多的网站| 538国产精品一区二区在线| 日韩免费电影在线观看| 日韩日本欧美亚洲| 国产亚洲精品美女| 午夜美女久久久久爽久久| 亚洲成人xxx| 91九色国产社区在线观看| 久久免费视频这里只有精品| 亚洲成人激情小说| 日韩女优人人人人射在线视频| 亚洲老头老太hd| 久久久久久久久久久久av| 国产成人精品视频在线| 欧美日韩精品二区| 国外成人性视频| 欧美大胆在线视频| 羞羞色国产精品| 91午夜理伦私人影院| 色婷婷综合久久久久中文字幕1| 亚洲欧美激情在线视频| 91久久精品美女高潮| 91精品中文在线| 国产精品日韩电影| 色综合色综合久久综合频道88| 2025国产精品视频| 日韩成人中文字幕| 亚洲男人天堂古典| 91在线免费观看网站| 国产精品成人国产乱一区| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲综合国产精品| 国内久久久精品|