知识大全 用asp.net还原与恢复sqlserver数据库

Posted 数据库

篇首语:知识的价值不在于占有,而在于使用。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用asp.net还原与恢复sqlserver数据库相关的知识,希望对你有一定的参考价值。

  上次做了个项目 涉及到数据库的还原和恢复 到网上找了一下 是利用SQLDMO实现的 只要添加SQLDMO引用就好了 然后利用下边的类的方法就可以实现了

  我把原作者的类扩充了一下 可以自动识别nfig里 的数据库连接字符串 可以通过变量设置还原恢复的信息

  需要注意的时还原 还原的时候问题最大了 有别的用户使用数据库的时候无法还原 解决办法就是在MASTER数据库中添加一个存储过程

  create proc killspid (@dbname varchar( ))

  as begin declare @sql nvarchar( )

  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<> begin exec( kill +@spid)

  fetch next from getspid into @spid end close getspid deallocate getspid end GO

  在还原之前先执行这个存储过程 需要传递dbname 就是你的数据库的名字 下边是类的原代码 (nfig里的数据库连接字符串是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( 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 =

  oRestore ReplaceDatabase = true

  oRestore SQLRestore(oSQLServer)

  return ok

  

  catch(Exception e)

  

  return 恢复数据库失败

  throw

  

  finally

  

  oSQLServer DisConnect()

  

  

   /FooterTemplate> </asp TemplateColumn> </Columns> </asp datagrid>> </asp TemplateColumn> </Columns> </asp datagrid>

  private bool exepro()

  

  SqlConnection conn = new SqlConnection( server= +server+ uid= +uid+ pwd= +pwd+ database=master )

  SqlCommand cmd = new SqlCommand( killspid conn )

  cmd CommandType = CommandType StoredProcedure

  cmd Parameters Add( @dbname port )

  try

  

  conn Open()

  cmd ExecuteNonQuery()

  return true

  

  catch(Exception ex)

  

  return false

  

  finally

  

  conn Close()

  

  

  

cha138/Article/program/net/201311/11994

相关参考

知识大全 ASP.NET恢复备份Sql server

ASP.NET恢复备份Sqlserver  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近做的

知识大全 ASP.NET如何存取SQL Server数据库图片

ASP.NET如何存取SQLServer数据库图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET中备份SQL Server数据库的方法

ASP.NET中备份SQLServer数据库的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET2.0数据库入门之SQL Server

ASP.NET2.0数据库入门之SQLServer  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 用ASP.NET加密Cookie数据

用ASP.NET加密Cookie数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Cookie

知识大全 SQLSERVER数据库备份后无法还原的解决办法

SQLSERVER数据库备份后无法还原的解决办法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!有时

知识大全 ASP与ASP.NET转换Session数据桥的应用

ASP与ASP.NET转换Session数据桥的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET与数据库相关技巧

ASP.NET与数据库相关技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 在ASP.net 中从sqlserver检索(retrieve)图片

在ASP.net中从sqlserver检索(retrieve)图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 ASP.NET中数据校验部分的封装与应用

ASP.NET中数据校验部分的封装与应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们的业