以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]恢复问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=73842)

--  作者:blsu33
--  发布时间:2015/8/27 16:44:00
--  [讨论]恢复问题
红袍老师,
    备份的可以做了,我测试恢复一下,数据的确是恢复了,但是提示一个问题,不知道哪里有误

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
无法对 数据库\'D:\\账备份每天测试账套-2015827.bak\' 执行 删除,因为它不存在,或者您没有所需的权限。

--  作者:blsu33
--  发布时间:2015/8/27 16:45:00
--  
恢复按钮的代码

If MessageBox.Show( "恢复数据库操作将覆盖数据库,确定是否覆盖?","提示",MessageBoxButtons. YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then
    Dim dlg As New OpenFileDialog    \'定义一个新的OpenFileDialog
    dlg.Filter= "备份文件|*.bak"        \'设置筛选器
    dlg. title= "数据恢复"
    If dlg.ShowDialog = DialogResult.Ok Then       \'如果用户单击了确定按钮
        Dim cmd,cmd1 As New SQLCommand
        cmd.C
        cmd1.C
        cmd.CommandText = "use master;drop database" & "[" & dlg.filename & "]" \'清空指定表数据,是不是这块有问题
        cmd.ExecuteNonQuery()
        cmd1.CommandText ="use master; RESTORE DATABASE 测试 FROM DISK=\'"& dlg.filename &"\' With REPLACE;"
        cmd1.ExecuteNonQuery()
        MessageBox.Show("数据恢复完成!!!","提示",MessageBoxButtons.OK,MessageBoxIcon.Question)
    End If
Else
    Return       \'点击否终止代码的执行
End If
[此贴子已经被作者于2015/8/27 16:45:35编辑过]

--  作者:有点蓝
--  发布时间:2015/8/27 17:01:00
--  
你数据库备份的文件生成在服务器
你本机调用文件是在本机

--  作者:blsu33
--  发布时间:2015/8/27 17:08:00
--  
我现在是在一台电脑上做的 应该没有这个问题吧  
还没做 服务器端 客户端两部分 
--  作者:Hyphen
--  发布时间:2015/8/27 17:22:00
--  
都With REPLACE了,之前还有必要做drop database吗
--  作者:blsu33
--  发布时间:2015/8/27 17:34:00
--  
呃呃呃 去掉了这部分 就不提示了 谢谢Hyphen、有点蓝
 cmd1.CommandText ="use master; RESTORE DATABASE 测试 FROM DISK=\'"& dlg.filename &"\' With REPLACE;" 

命令是无条件覆盖 不管是否使用着已经更改