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

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

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

2019-11-18 17:08:53
字體:
來源:轉載
供稿:網友

上次做了個項目,涉及到數據庫的還原和恢復,到網上找了一下,是利用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();

 

 

 

              }

 

 

 

 

 

 

 

         }

 

 

 

     }

 

 

 

}


http://guanvee.VEVb.com/archive/2006/06/16/427514.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91网站在线免费观看| 亚洲人成伊人成综合网久久久| 538国产精品视频一区二区| 国产97免费视| 亚洲第一福利网| 亚洲欧美国产精品va在线观看| 国产精品偷伦视频免费观看国产| 91久久久久久久| 国产精品黄色av| 萌白酱国产一区二区| 性欧美视频videos6一9| 黑人精品xxx一区一二区| 国产精品免费久久久| 亚洲一区二区在线| 91精品国产自产91精品| www.久久色.com| 国产一区二区久久精品| 精品国产福利在线| 亚洲女人被黑人巨大进入al| 国产亚洲欧美另类中文| 日韩欧美在线视频日韩欧美在线视频| 91久久久久久久| 91天堂在线观看| 国产欧美一区二区三区四区| 亚洲最新中文字幕| 亚洲精品欧美日韩| 国产美女精品免费电影| 国产在线98福利播放视频| 色综合久综合久久综合久鬼88| 欧美日韩激情网| 伦伦影院午夜日韩欧美限制| 国产91成人在在线播放| 国产成+人+综合+亚洲欧美丁香花| 亚洲精品电影网| 欧美自拍大量在线观看| 成人乱色短篇合集| 亚洲天堂久久av| 欧洲成人性视频| 最近2019中文免费高清视频观看www99| 亚洲精品成人久久电影| 亚洲精品国产综合久久| 国产精品久久视频| 成人免费看吃奶视频网站| 91久久久久久久一区二区| 欧美性猛交xxxxx免费看| 91精品国产高清久久久久久| 国产精品v片在线观看不卡| 亚洲老头同性xxxxx| 亚洲国产精品va在线观看黑人| 中文字幕亚洲第一| 亚洲精品电影网在线观看| 亚洲综合第一页| 亚洲国产第一页| x99av成人免费| 欧美精品福利视频| 97碰碰碰免费色视频| 国产成人亚洲综合青青| 国产精品久久久久久久久免费看| 国产成人精品视频在线| 国产精品欧美风情| 久久综合网hezyo| 久久久视频在线| 在线观看欧美日韩国产| 亚洲欧美在线免费观看| 亚洲精品美女久久| 亚洲免费av片| 国产成人av网址| 欧美老少做受xxxx高潮| 日韩最新在线视频| 亚洲欧美变态国产另类| 亚洲国内精品在线| 欧美理论电影在线观看| 日韩女优人人人人射在线视频| 亚洲一区免费网站| 久久韩剧网电视剧| 久久99热精品这里久久精品| 精品成人av一区| 91精品国产成人www| 久久久亚洲天堂| 在线视频亚洲欧美| 欧美大肥婆大肥bbbbb| 欧美激情视频在线| 国产精品情侣自拍| 全亚洲最色的网站在线观看| www.亚洲成人| 久久成人精品一区二区三区| 国产精品96久久久久久又黄又硬| 欧美在线中文字幕| 中日韩美女免费视频网址在线观看| 国产欧美va欧美va香蕉在线| 国产一区二区三区高清在线观看| 性欧美办公室18xxxxhd| 成人久久18免费网站图片| 精品丝袜一区二区三区| 欧美激情久久久久| 欧美最猛性xxxxx亚洲精品| 5252色成人免费视频| 欧美午夜丰满在线18影院| 国产精品高潮粉嫩av| 久久国产精品亚洲| 欧美老女人性视频| 亚洲精品97久久| 中文字幕日韩免费视频| 免费不卡欧美自拍视频| 日韩黄色av网站| 国产日产亚洲精品| 亚洲国产精品福利| 91久久国产精品| 亚洲成人久久网| 亚洲人成亚洲人成在线观看| 国产精品久久久久国产a级| 亚洲国产日韩精品在线| 亚洲第一区中文字幕| 色综合久综合久久综合久鬼88| 国产精品专区一| 最新69国产成人精品视频免费| 亚洲人成网7777777国产| 久久久久免费视频| 在线电影中文日韩| 最近的2019中文字幕免费一页| 久久久久成人网| 日韩欧美中文第一页| 青青青国产精品一区二区| 精品国产成人av| 亚洲男人天堂古典| 国产成人综合亚洲| 国产剧情日韩欧美| 久久精品99无色码中文字幕| 日韩在线观看免费全集电视剧网站| 久久男人资源视频| 日韩精品中文在线观看| 国产在线拍偷自揄拍精品| 亚洲人成网站999久久久综合| 欧美乱大交做爰xxxⅹ性3| 97热在线精品视频在线观看| 国产黑人绿帽在线第一区| 国产精品久久久久久久av电影| 久久国产精品免费视频| 欧美多人爱爱视频网站| 欧美日韩在线影院| 人人做人人澡人人爽欧美| 91网站在线免费观看| 国外日韩电影在线观看| 一区二区三区四区视频| 欧洲成人免费aa| 视频直播国产精品| 日韩精品在线观看网站| 国产精品久久婷婷六月丁香| 亚洲精品一二区| 国产一区红桃视频| zzjj国产精品一区二区| 亚洲老司机av| 日韩电影在线观看免费| 欧美精品一区在线播放| 精品久久久久久久久中文字幕| 成人看片人aa| 国产99久久精品一区二区永久免费| 国内外成人免费激情在线视频网站| 亚洲欧美999| 欧美成人午夜激情在线| 欧美性xxxxxxxxx| 国产精品丝袜视频| 97视频色精品| 热99久久精品|