All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
XMLHTTP 对象及其方法简介_[XML教程]
Sql,Server数据库定时自动备份_[SQL,Server教程]
AJAX并不神秘:揭密各种AJAX控件和类库_[AJAX教程]
用em指定字体尺寸的问题和解决办法_[Html教程]
PHP实例教程:PHP实现文件安全下载的程序_[PHP教程]
ASP.NET实现投票结果的图片进度条显示代码_.net资料_编程技术
谈PHP生成静态页面_[PHP教程]
C#教程:通过注册表优化系统
SQL数据库高级教程:SQL ALTER TABLE_[SQL Server教程]
asp.net2.0中Crystal报表区域介绍
Reading number is top 10 pictures
Hunan province aizhai super-large suspension bridge open to traffic and 4 world first1
NeedWallpaper4
男人巳快沦落成动物了
采访美女孙菲菲
战场废物1
Men's and women's orgasms
From China fortress sora aoi5
男人帮杂志里的惹火性感美女1
Angie Chiu vijara myth1
A letter to parents choose world of warcraft seven big reason
Download software ranking
网页特效实例大全
Boxer's Top ten classic battle7
小黑猫大战两米大花蛇
matrix1
Love the forty days
仙剑奇侠传98硬盘WINXP版
Unix video tutorial12
Unix video tutorial10
Wild things 2
Boxer Classic video3
delv published in(发表于) 2014/1/6 9:14:11 Edit(编辑)
用ASP.NET还原与恢复Sql,server_[Asp.Net教程]

用ASP.NET还原与恢复Sql,server_[Asp.Net教程]

用ASP.NET还原与恢复Sql server_[Asp.Net教程]

上次做了个项目,涉及到数据库的还原和恢复,到网上找了一下,是利用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
...{
/**////
/// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复
///
public class DbOper
...{
private string server;
private string uid;
private string pwd;
private string database;
private string conn;
/**////
/// DbOper类的构造函数
///
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;
}
/**////
/// 数据库备份
///
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();
}
}
///数据库恢复 ///
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();
}
}
}
}


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.