我希望能够在启动时检查损坏的数据库,然后以编程方式修复它。我可以轻松地do that。
我的问题是我想测试一下我预期的方式。有没有人知道有意破坏数据库的方法,以便我可以测试我的代码?
答案 0 :(得分:2)
您可以将SDF文件加载到字节数组中,随机更改一些字节并将数组保存回原始文件(或者就此而言,将文件加载到十六进制编辑器中并将所有莎士比亚的猴子放在其上)
我认为如果不做你想做的事,我会做你想做的事。根据我的经验,SqlCeEngine.Repair
并未解决我在损坏的SqlCE数据库中遇到的问题(请参阅this answer相关问题)。可能Repair
可以修复已经随机更改其某些字节的数据库,但我确定这将取决于文件中发生更改的位置(例如,在某个地方或文件中的数据页中)标题,如果有的话。)