2015-11-19 77 views
0

我在一台使用SQL数据库的c#开发的PC上安装了一个桌面应用程序。几个月后,我发布了一个新版本的应用程序(使用clickonce)并将其放到FTP服务器上。c#应用程序更新后文件和数据库丢失

当我做了更新,数据库(.mdf和.ldf文件)被删除,并由一个新的(我认为由发布的一个)取而代之,所以几个月的工作不见了!

我想知道是否有可能恢复或检索旧的数据库。

在PC上进行更新之前,我在笔记本电脑上做了一些测试,本地数据库从未被替换或擦除。

非常感谢,

+2

严格来说,这不是一个编程问题。如果你保持定期备份(你应该btw),你可以从那里恢复。也许你可以给Windows Restore一个镜头。作为解决方案的一部分,您不应该发布您的sdf文件(假设您使用SQL Server CE)。 – dotNET

+0

您是否使用代码优先的方法使用实体框架建模? –

+0

不,我们不是。但真正的问题是我们如何才能提升已擦除数据库的性能(如果有方法) – A2maridz

回答

0

您可以检查您的解决方案的特性,如果SQL文件设定为复制本地或复制到输出目录。

通常情况下,数据库文件必须设置:

Build Action: NONE 
    Copy to Output Directory: Do NOT COPY 

和你的安装应用程序时,你手动复制它们。

可能它们被设置为复制,并且您的ClickOnce可能会提供此设置。

+0

但是有没有办法提升已擦除数据库的性能? – A2maridz

+0

该问题与备份无关。是的,您可以允许用户进行MDF备份(将Filecopy功能用于.BAK文件)。但请记住:问题是从安装/更新中取出MDF文件,否则所有更新都会重写数据库文件。 –

相关问题