• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

C#代码实现SQL SERVER数据备份和恢复的问题~~

zouge139 2004-11-07 03:03:47
代码:
private void button2_Click(object sender, System.EventArgs e)
{
try
{
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
oSQLServer.LoginSecure = false;
oSQLServer.Connect("localhost", "xinhui", "xinhui");
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = "bozhao";
oBackup.Files = @"d:\\bozhao.bak";
oBackup.BackupSetName = "bozhao";
oBackup.BackupSetDescription = "数据库备份";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
}
catch
{
throw;
}
}

private void button3_Click(object sender, System.EventArgs e)
{
try
{
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
oSQLServer.LoginSecure = false;
oSQLServer.Connect("localhost", "xinhui", "xinhui");
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = "bozhao";
oRestore.Files = @"d:\\bozhao.bak";
oRestore.FileNumber = 1;
oRestore.ReplaceDatabase = true;
oRestore.SQLRestore(oSQLServer);
}
catch
{
throw;
}
}

备份没问题,但恢复时报错:
1.数据库正在使用,未能获得对数据库的排它访问权
2.没有对此数据库的Restore权限
...全文
204 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
LangHua888 2005-04-13
oSQLServer.DisConnect();
你的数据库没有断开吗
当然是正在使用
回复
Anhowe 2004-11-17
有一个问题,就是备份远程数据库时,生成的备份文件在远程服务器上,如何客户端备份得到远程数据库的备份文件“*.bak"???
急急!!!

谢谢!!!

麻烦清楚的发份资料到anhowe@126.com好吗,谢谢!!!
回复
cdo 2004-11-07
又學到一招:)
回复
paul8765 2004-11-07
把数据库命令写到sqlcommand的text里,然后执行sqlcommand就行了。
回复
zouge139 2004-11-07
恢复时将数据库设为单用户模式
EXEC sp_dboption @dbname = 'databasename', @optname = 'single user', @optvalue = false"

怎么在代码里设置?
回复
cnhgj 2004-11-07
恢复时将数据库设为单用户模式
EXEC sp_dboption @dbname = 'databasename', @optname = 'single user', @optvalue = false"
回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-11-07 03:03
社区公告

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