【发布时间】:2011-02-13 13:01:51
【问题描述】:
我希望能够在启动时检查损坏的数据库,然后以编程方式修复它。我可以很容易地do that。
我的问题是我想测试事情是否按我预期的方式工作。有谁知道故意破坏数据库以便我测试代码的方法?
【问题讨论】:
-
将其作为比特流打开并更改一些随机比特...
我希望能够在启动时检查损坏的数据库,然后以编程方式修复它。我可以很容易地do that。
我的问题是我想测试事情是否按我预期的方式工作。有谁知道故意破坏数据库以便我测试代码的方法?
【问题讨论】:
您可以将 SDF 文件加载到字节数组中,随机更改一些字节并将数组保存回原始文件(或者就此而言,将文件加载到十六进制编辑器中,然后将所有莎士比亚的猴子都放在上面) .
我认为这会做你想做的事而不做你想做的事。根据我的经验,SqlCeEngine.Repair 没有解决我在损坏的 SqlCE 数据库中遇到的问题(有关相关问题,请参阅this answer)。可能Repair 可以修复其某些字节随机更改的数据库,但我确信这将取决于文件中发生更改的位置(例如,在某处的数据页或文件头中,如果有的话)。
【讨论】: