仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 654|回复: 8
打印 上一主题 下一主题

[学习教程] NET网页编程之在asp.net中备份与复原sqlserver数据库

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:22:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:)该功效次要仍是挪用sqlserver中的backup与restore来完成sqlserver数据库的复原与备份,小编将两个功效分离写成两个办法,列位在程序中间接挪用便可。

一,备份数据库
///<summary>
///备份数据库
///</summary>
///<paramname="databasename">数据库称号</param>
///<paramname="filepath">备份地点</param>
///<paramname="istype">1完全数据库2仅备份日记</param>
publicstaticvoidBackUp(stringdatabasename,stringfilepath,stringbackupname,byteistype,boolisFormat)
{
StringBuildersql=newStringBuilder();
switch(istype)
{
case1:
sql.Append("backupdatabase"+databasename+"todisk=N"+filepath+"withSTATS=10");
break;
case2:
sql.Append("backuplog"+databasename+"todisk=N"+filepath+"withSTATS=10");
break;
case3:
sql.Append("backupdatabase"+databasename+"todisk=N"+filepath+"withdifferential,STATS=10");
break;
default:break;
}

sql.Append(",name=N"+backupname+"");
if(isFormat)
sql.Append(",format");

using(SqlConnectionconn=SqlConn())
{
conn.Open();
using(SqlCommandcmd=newSqlCommand())
{
cmd.Connection=conn;
cmd.CommandText=sql.ToString();
cmd.CommandType=CommandType.Text;

cmd.ExecuteNonQuery();
}
}
}


下面代码中的C#代码就不必注释了,都是一些对sqlserver最基本的操纵,注释一下sql:
backupdatabase要备份的数据库称号--备份指定的数据库
todisk--备份文件寄存的地位
stats--备份完成指定的百分比后就前往一条动静,好比这里stats=10就是当备份完成10%就前往一条动静,这个也是默许值,假如我们不设置stats,默许就是10.
differential--仅备份与前次完全备份有差别的部分,也就是备份差别数据库,默许情形下是备份完全数据库
format--是不是格局化备份介质,假如设置该项,则备份文件会格局化选中的备份文件,不然会在选中的备份文件上累加。
backuplog要备份的数据库称号--备份指定命据库日记文件

2、复原数据库
///<summary>
///复原数据库
///</summary>
///<paramname="databasename">数据库称号</param>
///<paramname="filepath"></param>
publicstaticvoidReStore(stringdatabasename,stringfilepath)
{
try
{
stringsql=@"usemaster
declare@dbnamevarchar(50)
set@dbname="+databasename+"";

sql=string.Concat(sql,@"declare@sqlvarchar(50)
declarecs_resultcursorlocalforselectkill+cast(spidasvarchar(50))fromsys.sysprocesses
wheredb_name(dbid)=@dbname

opencs_result
fetchnextfromcs_resultinto@sql
while@@fetch_status=0
begin
execute(@sql)
fetchnextfromcs_resultinto@sql
end
closecs_result
deallocatecs_result
");
sql=string.Concat(sql,@"restoredatabase"+databasename+"fromdisk="+filepath+"withreplace");

using(SqlConnectionconn=SqlConn())
{
conn.Open();
using(SqlCommandcmd=newSqlCommand())
{
cmd.Connection=conn;
cmd.CommandText=sql;
cmd.CommandType=CommandType.Text;

cmd.ExecuteNonQuery();
}
}
}
catch(SqlExceptionex)
{
throwex;
}
}


注释一下下面的sql:
declare@sqlvarchar(50)
declarecs_resultcursorlocalforselectkill+cast(spidasvarchar(50))fromsys.sysprocesseswheredb_name(dbid)=@dbname

opencs_result
fetchnextfromcs_resultinto@sql
while@@fetch_status=0
begin
execute(@sql)
fetchnextfromcs_resultinto@sql
end
closecs_result
deallocatecs_result
该段sql是中断一切正在利用要复原数据库的历程,由于复原数据库请求对该数据库具有独有权限。

restoredatabase要复原的数据库称号--复原数据库
fromdisk--备份文件的地点
replace--是不是掩盖原无数据库,这个选项与我们在SQLServerManagementStudio中复原数据的"掩盖现无数据库"选项功效一样。

注重:由SQLServer的较新版本创立的备份将没法在SQLServer的初期版本中复原

两个办法就写完了,怎样,备份与复原数据库仍是挺复杂的吧。它有很多缺点的,有兴趣可以到网上去搜索一下。于是微软有发明了“下一代”C++:C++/CLI语言,这个可以解决在.NETFramework中,托管C++产生的问题。在《程序员》杂志上,lippman和李建中合作连载介绍了C++/CLI语言。
活着的死人 该用户已被删除
沙发
发表于 2015-1-18 13:40:15 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
若天明 该用户已被删除
板凳
发表于 2015-1-26 06:19:31 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
若相依 该用户已被删除
地板
发表于 2015-2-4 15:06:16 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
小女巫 该用户已被删除
5#
发表于 2015-2-10 02:37:11 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
乐观 该用户已被删除
6#
发表于 2015-2-28 17:51:57 | 只看该作者
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-10 05:15:08 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
老尸 该用户已被删除
8#
发表于 2015-3-17 05:10:28 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-23 22:25:10 | 只看该作者
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 17:05

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表