|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在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的跨平台也当之无愧是一句谎言。 |
|