读书人

用asp.net代码怎样实现数据库备份和还

发布时间: 2012-02-25 10:01:49 作者: rapoo

用asp.net代码怎样实现数据库备份和还原,急急急!!!!
用asp.net代码怎样实现数据库备份和还原,这个我现在已经实现了,代码是网上找的,代码如下:
/// <summary>
/// 还原数据库函数
/// </summary>
/// <param name= "strDbName "> 数据库名 </param>
/// <param name= "strFileName "> 数据库备份文件的完整路径名 </param>
/// <returns> </returns>
public bool RestoreDB(string strDbName,string strFileName)
{
//PBar = pgbMain ;
SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass() ;
try
{
//服务器名,数据库用户名,数据库用户名密码
svr.Connect( "localhost ", "sa ", "hai ") ;

SQLDMO.QueryResults qr = svr.EnumProcesses(-1) ;
int iColPIDNum = -1 ;
int iColDbName = -1 ;
for(int i=1;i <=qr.Columns;i++)
{
string strName = qr.get_ColumnName(i) ;
if (strName.ToUpper().Trim() == "SPID ")
{
iColPIDNum = i ;
}
else if (strName.ToUpper().Trim() == "DBNAME ")
{
iColDbName = i ;
}
if (iColPIDNum != -1 && iColDbName != -1)
break ;
}
//杀死使用strDbName数据库的进程
for(int i=1;i <=qr.Rows;i++)
{
int lPID = qr.GetColumnLong(i,iColPIDNum) ;
string strDBName = qr.GetColumnString(i,iColDbName) ;
if (strDBName.ToUpper() == strDbName.ToUpper())
{
svr.KillProcess(lPID) ;
}
}

SQLDMO.Restore res = new SQLDMO.RestoreClass() ;
res.Action = 0 ;
res.Files = strFileName ;


res.Database = strDbName ;
res.ReplaceDatabase = true ;
res.SQLRestore(svr) ;
return true ;
}
catch
{
return false;
}
finally
{
svr.DisConnect() ;
}
}

这是数据库还原的代码,当还原数据库成功后,我再想在这张页面上进行对数据库的操作时就会出错,错误信息如下:


在向服务器发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)


我自己认为可能是在还原数据库的时候把和这个数据库有关的进程都杀死了,而现在再要对数据库进行操作时,发生了这个错误,
问有没有人知道怎样解决这个问题啊,很急啊



[解决办法]
不知道 帮你顶
[解决办法]
备份完之后,要求重新登录,我的也跟你情况一样的,备份成功转到登录页面,重新登录才行
[解决办法]
我做过备份..但是还原始终没搞好..当前数据库在使用不能还原
备份就一句话就OK了
backup database 名 to disk = 'c:/sd.bak '
[解决办法]
我在还原成功的代码后加了一段
try
{
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, "select * from administrator ");//就是一段操作数据库的代码
}
catch
{
}
[解决办法]
不错 顶一个!
[解决办法]
顶!我也遇到过,未解决。

读书人网 >asp.net

热点推荐