C#中的数据库恢复。。。在线等。。

bhwhy 2004-08-31 05:37:12
http://dev.csdn.net/develop/article/28/28564.shtm这个里的方法我试了,提示 无法打开备份设备,d:\hy.bak,设备出现错误或设备脱机,希望高手指点。。
...全文
146 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bhwhy 2004-09-02
  • 打赏
  • 举报
回复
不是。我刚备份的。而且我在数据库中直接恢复没有问题。还有一个就是,网上提供的数据库备份没有问题,提供的恢复我试了几个都报同样的错。郁闷!难道我的机子有问题?
luyiping 2004-09-02
  • 打赏
  • 举报
回复
是不是备份文件损坏了啊,大哥
bhwhy 2004-09-02
  • 打赏
  • 举报
回复
楼上的方法我也试过,提示一样的错误信息,打不开备份文件,到底是什么原因呢。
云涛 2004-09-01
  • 打赏
  • 举报
回复
你要把几个进程杀死才可以,然后用SQLDMO 类中的函数可以完成恢复
public bool RestoreDB(string strDbName,string strFileName)
{

SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass() ;
try
{
svr.Connect(ServerName,UserName,Password) ;
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 ;
}
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.PercentComplete += pceh;
res.Files = strFileName ;
res.Database = strDbName ;
res.ReplaceDatabase = true ;
res.SQLRestore(svr) ;
return true ;
}
catch(Exception err)
{
throw(new Exception("恢复数据库失败,请关闭所有和该数据库连接的程序!"+err.Message)) ;
}
finally
{
svr.DisConnect() ;
}
}
bhwhy 2004-08-31
  • 打赏
  • 举报
回复
没有人??唉。
bhwhy 2004-08-31
  • 打赏
  • 举报
回复
可是总是出现打不开,我刚怀疑是没有装SP3的缘因,但装了依然不行。搞不懂。郁闷。
xiangsu 2004-08-31
  • 打赏
  • 举报
回复
http://www.netyi.net/in.asp?id=xiangsu
gkwww 2004-08-31
  • 打赏
  • 举报
回复

应该可以的。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧