快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

用asp.net还原与恢复sqlserver数据库

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();

              }

 

         }

     }

}


返回类别: 教程
上一教程: .Net将如何影响我们?(二)
下一教程: .Net 常用加密算法类

您可以阅读与"用asp.net还原与恢复sqlserver数据库"相关的教程:
· ASP.NET中数据库的操作初步(3)
· ASP.NET中数据库的操作初步(1)
· ASP.NET中数据库的操作初步(2)
· ASP.NET 链接数据库基础
· ASP.NET 2.0轻松实现数据库应用开发
    微笑服务 优质保证 索取样品