ASP.NET网页设计用ASP.NET复原与恢复Sql server
在CSDN里搜索一下“初学”两字,竟有三百余篇帖子(也许更多)。有些帖子说,有了asp的基础,只要15天就能很熟悉了,我甚感自己的愚钝。更多帖子是向大家请教初学者适合看书。两个多月的时间(当然平常杂事比较多。asp.net|server|sql|恢复 前次做了个项目,触及到数据库的复原和恢复,到网上找了一下,是使用SQLDMO完成的,只需增加SQLDMO援用就行了,然后使用下边的类的办法就能够完成了。我把原作者的类扩大了一下,能够主动辨认web.config里的数据库毗连字符串,能够经由过程变量设置复原恢复的信息。
必要注重的时复原,复原的时分成绩最年夜了,有其余用户利用数据库的时分没法复原,办理举措就是在MASTER数据库中增加一个存储历程:
createprockillspid(@dbnamevarchar(20))
asbegindeclare@sqlnvarchar(500)
declare@spidintset@sql=declaregetspidcursorforselectspidfromsysprocesseswheredbid=db_id(+@dbname+)exec(@sql)
opengetspidfetchnextfromgetspidinto@spidwhile@@fetch_status-1beginexec(kill+@spid)
fetchnextfromgetspidinto@spidendclosegetspiddeallocategetspidendGO
在复原之前先实行这个存储历程,必要传送dbname,就是你的数据库的名字。下边是类的原代码:(web.config里的数据库毗连字符串是constr)
usingSystem;
usingSystem.Configuration;
usingSystem.Data.SqlClient;
usingSystem.Data;
namespaceweb.base_class
...{
/**////
///DbOper类,次要使用SQLDMO完成对MicrosoftSQLServer数据库的备份和恢复
///
publicclassDbOper
...{
privatestringserver;
privatestringuid;
privatestringpwd;
privatestringdatabase;
privatestringconn;
/**////
///DbOper类的机关函数
///
publicDbOper()
...{
conn=System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();server=cut(conn,"server=",";");
uid=cut(conn,"uid=",";");
pwd=cut(conn,"pwd=",";");
database=cut(conn,"database=",";");
}
publicstringcut(stringstr,stringbg,stringed)
...{
stringsub;
sub=str.Substring(str.IndexOf(bg)+bg.Length);
sub=sub.Substring(0,sub.IndexOf(";"));
returnsub;
}
/**////
///数据库备份
///
publicboolDbBackup(stringurl)
...{SQLDMO.BackupoBackup=newSQLDMO.BackupClass();
SQLDMO.SQLServeroSQLServer=newSQLDMO.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);
returntrue;
}
catch
...{
returnfalse;
throw;
}
finally
...{
oSQLServer.DisConnect();
}
}
///数据库恢复///
publicstringDbRestore(stringurl)
{if(exepro()!=true)
//实行存储历程{return"操纵失利";}
else{SQLDMO.RestoreoRestore=newSQLDMO.RestoreClass();
SQLDMO.SQLServeroSQLServer=newSQLDMO.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(Exceptione)
{return"恢单数据库失利";
throw;
}finally{oSQLServer.DisConnect();
}}}
privateboolexepro()
{SqlConnectionconn1=newSqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
SqlCommandcmd=newSqlCommand("killspid",conn1);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@dbname","port");
try{conn1.Open();
cmd.ExecuteNonQuery();
returntrue;
}
catch(Exceptionex)
{returnfalse;
}finally
{
conn1.Close();
}
}
}
}
我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《Java的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。 CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
页:
[1]