亚洲香蕉成人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
欧美最近摘花xxxx摘花| 久久综合九色九九| 亚洲欧洲日韩国产| 亚洲精品乱码久久久久久按摩观| 亚洲精品美女在线| 亚洲一区制服诱惑| 97久久超碰福利国产精品…| 日韩国产在线看| 亚洲一区中文字幕| 色偷偷综合社区| 久久久久久亚洲精品中文字幕| 成人亚洲欧美一区二区三区| 最新国产精品拍自在线播放| 在线播放国产一区中文字幕剧情欧美| 亚洲国产精品大全| 日韩精品在线私人| 久久精品国产亚洲一区二区| 国产精品96久久久久久又黄又硬| 日韩精品丝袜在线| 欧美亚洲视频在线观看| 日韩三级成人av网| 精品久久久免费| 欧美日韩国产精品一区二区不卡中文| 久久精品91久久久久久再现| 欧美精品久久久久久久| 亚洲香蕉av在线一区二区三区| 国产亚洲精品va在线观看| 欧美日韩中国免费专区在线看| 亚洲电影免费观看高清完整版| 日韩高清av一区二区三区| 久久精品久久久久| 精品亚洲男同gayvideo网站| 2020久久国产精品| 在线电影中文日韩| 欧美伊久线香蕉线新在线| 久久久久久中文| 亚洲精品www久久久| 清纯唯美日韩制服另类| 97婷婷大伊香蕉精品视频| 精品国产鲁一鲁一区二区张丽| 日韩中文字幕国产精品| 91极品视频在线| 国产精品久久久久77777| 色综合导航网站| 欧美极品少妇xxxxx| 一个人www欧美| 国产在线视频2019最新视频| 亚洲激情视频在线播放| 国产999精品久久久| 日本精品一区二区三区在线| 欧美日韩高清区| 亚洲精品xxx| 欧美激情亚洲激情| 国产精品成人v| 亚洲最大的网站| 亚洲国内高清视频| 欧美成在线观看| xvideos成人免费中文版| 欧美性在线观看| 亚洲第一偷拍网| 国产一区二区色| 成人在线激情视频| 欧美午夜精品久久久久久浪潮| xvideos亚洲| 亚洲第一偷拍网| 久久久av亚洲男天堂| 国产网站欧美日韩免费精品在线观看| 高跟丝袜欧美一区| 91亚洲精华国产精华| 亚洲精品中文字幕女同| 日韩精品在线观看一区二区| 久久久国产精品一区| 欧美性视频精品| 国产精品91在线观看| 久久琪琪电影院| 日韩欧美成人免费视频| 亚洲性xxxx| 亚洲人高潮女人毛茸茸| 久久久免费观看| 久久精品电影网站| 国产精品高清在线观看| 成人免费网站在线观看| 欧美日韩福利在线观看| 欧美日韩高清区| 亚洲一区二区福利| 日韩成人免费视频| 欧美最近摘花xxxx摘花| 91久久精品美女高潮| 91精品久久久久久久久久另类| 亚洲**2019国产| 在线观看欧美成人| 91av中文字幕| 91超碰中文字幕久久精品| 日韩电影中文 亚洲精品乱码| 亚洲自拍高清视频网站| www.色综合| 精品国产区一区二区三区在线观看| 欧美国产精品人人做人人爱| 日韩欧中文字幕| 日韩h在线观看| 一区二区国产精品视频| 久久精品国产一区二区三区| 亚洲欧美国产一区二区三区| 97香蕉超级碰碰久久免费的优势| 国产玖玖精品视频| 91精品美女在线| 51久久精品夜色国产麻豆| 亚洲国产精品va在线看黑人| 国产精品福利片| 国产成人精品视频在线观看| 久久av.com| 久久综合伊人77777蜜臀| 2019亚洲日韩新视频| 欧美激情视频在线免费观看 欧美视频免费一| 精品国产拍在线观看| 久久久视频在线| 日韩中文字幕av| 97香蕉超级碰碰久久免费软件| 欧美激情视频免费观看| 欧美日韩在线免费观看| 亚洲综合第一页| 97视频com| 亚洲精品小视频在线观看| 一本色道久久88综合亚洲精品ⅰ| 成人免费xxxxx在线观看| 日韩国产一区三区| 欧美激情亚洲精品| 91国语精品自产拍在线观看性色| 中文字幕亚洲一区二区三区五十路| 国产精品久久久久久久7电影| 亚洲精品一区二区三区不| 亚洲国产一区二区三区四区| 国产日本欧美在线观看| 日韩三级成人av网| 成人在线观看视频网站| 97视频在线观看免费| 国产精品久久一区主播| 久久精品成人动漫| 久久久久久这里只有精品| 亚洲va欧美va国产综合剧情| 一本大道久久加勒比香蕉| 日韩成人中文电影| 伊人激情综合网| 久久这里只有精品视频首页| 亚洲性av网站| 欧美日韩aaaa| 日韩电影视频免费| 日韩精品视频免费专区在线播放| 亚洲人成电影网站色xx| 疯狂做受xxxx欧美肥白少妇| 热re91久久精品国99热蜜臀| 一区二区三区在线播放欧美| 日韩免费观看av| 日韩精品亚洲精品| 亚洲天堂男人天堂女人天堂| 亚洲欧美日韩精品久久奇米色影视| 日韩在线一区二区三区免费视频| xvideos国产精品| 欧美高清视频在线观看| 欧美人与性动交a欧美精品| 91精品国产色综合久久不卡98| 日韩美女激情视频| 高清欧美性猛交xxxx黑人猛交| 深夜精品寂寞黄网站在线观看|