本站首页 | 网站建设 | 源码交易 | 铃声图片 | 免费资源 | 在线留言 | 诚聘英才 | .
188元拥有网站!!
免费人才招聘
用asp.net还原与恢复sqlserver数据库
当前所在位置:首页 免费资源网站网页制作技巧

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

 }

 

 }

 }

}


上一篇:给Asp.Net初学者的关于继承和多态性的例子 下一篇: 认识ASP.NET配置文件Web.config
『国港科技-客服QQ:451079368 494579641
网站最新通知 联系我们 设为首页  加入收藏  网站地图
服务:成都西昌绵阳攀枝花南充康定眉山乐山内江重庆昆明贵州北京天津上海南京泸州宜宾自贡广元广安雅安资阳遂宁德阳巴中阿坝甘孜保山大理丽江西双版纳玉溪东莞佛山广州河源惠州江门茂名汕头深圳中山珠海安庆福州泉州厦门开封长沙杭州嘉兴丽水南京九江网站建设网页制作业务

Copyright 国港科技 2005 _ 2015 All Rights Reserved.
西昌网站建设网页专家 客服QQ:451079368 494579641 电话:13981528686

本站链接信息
本站浏览量: