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

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:13:17
字體:
來源:轉載
供稿:網友

上次做了個項目,涉及到數據庫的還原和恢復,到網上找了一下,是利用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精品一区| 国产精品成人品| 欧美高清视频一区二区| 亚洲高清久久网| 日韩在线观看网站| 久久久久久亚洲精品| 欧美国产精品日韩| 亚洲人成网7777777国产| 国精产品一区一区三区有限在线| 欧美大片网站在线观看| 亚洲成人网在线观看| 中文字幕亚洲无线码在线一区| 日韩激情视频在线| 中文国产成人精品久久一| 欧美人与性动交a欧美精品| 午夜精品一区二区三区在线视| 亚洲欧洲视频在线| 亚洲精品资源美女情侣酒店| 国产成人精品免高潮费视频| 久久影视电视剧免费网站清宫辞电视| 亚洲欧洲在线观看| 国产精品嫩草影院一区二区| 69影院欧美专区视频| 91精品国产一区| 亚洲xxxx视频| 国产亚洲欧美日韩美女| 青青精品视频播放| 亚洲欧美一区二区三区久久| 日本久久精品视频| 色综合色综合久久综合频道88| 国产小视频91| 亚洲精品一区久久久久久| 一区二区三区国产视频| 一本色道久久88亚洲综合88| 成人网欧美在线视频| 日韩免费av在线| 日本亚洲欧洲色α| 欧美亚洲日本黄色| 中文字幕欧美日韩va免费视频| 91精品国产综合久久香蕉922| 992tv在线成人免费观看| 成人在线激情视频| 成人妇女免费播放久久久| 欧美日本高清一区| 国产极品jizzhd欧美| 欧美在线激情网| 成人黄色大片在线免费观看| 国产精品三级在线| 亚洲国产精品电影| 成人激情综合网| 欧美在线欧美在线| 国产精品九九九| 91精品久久久久久久久久| www.国产精品一二区| 亚洲一区二区三区视频| 亚洲自拍另类欧美丝袜| 久久色在线播放| 国产一区av在线| 亚洲精品久久久久久下一站| 岛国精品视频在线播放| 亚洲一区二区三区毛片| 亚洲激情视频在线观看| 国产婷婷色综合av蜜臀av| 欧美日韩亚洲国产一区| 欧美美女18p| 91黑丝高跟在线| 69久久夜色精品国产7777| 国产欧美精品va在线观看| 日韩最新在线视频| 精品成人av一区| 欧美另类69精品久久久久9999| 色综合久久天天综线观看| 日韩成人在线视频观看| 疯狂欧美牲乱大交777| 精品久久久91| 日韩av电影院| 国精产品一区一区三区有限在线| 亚洲va久久久噜噜噜| 国产精品一区二区三区成人| 在线播放日韩专区| 久久综合色影院| 91国产一区在线| 日韩免费黄色av| 久久久久99精品久久久久| 亚洲日韩欧美视频一区| 久久精品国产欧美亚洲人人爽| 午夜精品一区二区三区在线播放| 成人伊人精品色xxxx视频| 国产精品视频网| 8x海外华人永久免费日韩内陆视频| 亚洲精品二三区| 亚洲精品999| 中文字幕日韩欧美| 亚洲三级av在线| 亚洲欧美激情另类校园| 国产欧美一区二区三区久久| 国产精品吹潮在线观看| 亚洲第一精品自拍| 色无极影院亚洲| 亚洲精品av在线播放| 成人网在线视频| 91高潮精品免费porn| 亚洲自拍偷拍网址| 欧美黑人xxxⅹ高潮交| 91高清视频免费观看| 欧洲日韩成人av| 亚洲电影在线看| 92国产精品视频| 8x海外华人永久免费日韩内陆视频| 成人午夜小视频| 国产精品国产亚洲伊人久久| 色偷偷亚洲男人天堂| 久久99久久久久久久噜噜| 国产日韩欧美视频| 91精品中文在线| 精品久久久久久久久久久久| 97久久久免费福利网址| 欧美日韩aaaa| 日韩最新中文字幕电影免费看| 麻豆乱码国产一区二区三区| 亚洲精品v天堂中文字幕| 成人免费在线网址| 欧美夜福利tv在线| 欧美精品久久久久久久久| 上原亚衣av一区二区三区| 欧美大片免费观看在线观看网站推荐| 岛国精品视频在线播放| 欧美超级免费视 在线| 久久天堂电影网| 亚洲国产精品va在线| 日韩国产精品一区| 欧美一区第一页| 91中文字幕在线| 久久手机免费视频| 国产成人精品国内自产拍免费看| 色偷偷9999www| 亚洲第一偷拍网| 国产精品视频专区| 欧美成人免费在线观看| 91精品国产高清久久久久久久久| 国产精品美女视频网站| 亚洲欧美日韩高清| 成人国产精品色哟哟| 日韩中文有码在线视频| 欧美成人一二三| xvideos亚洲人网站| 国产丝袜一区二区三区免费视频| 久久91亚洲精品中文字幕奶水| 国产精品成人在线| 欧美日韩成人免费| 国产精品揄拍500视频| 亚洲欧洲国产一区| 亚洲第一精品夜夜躁人人躁| 91久久国产精品91久久性色| 亚洲欧洲一区二区三区在线观看| 狠狠躁18三区二区一区| 韩日欧美一区二区| 亚洲人高潮女人毛茸茸| 欧美激情网友自拍| 中文字幕一区二区三区电影| 欧美超级乱淫片喷水| 国产精品久久久久久久电影| 黑人巨大精品欧美一区二区三区|