0

我尝试从 SQL Server CE 3.5 数据库中的表中删除一些行,然后得到SqlCeException

发生了内部错误。[ ID = 3649 ]

我读过这意味着数据库处于损坏状态并且必须修复,尽管关于特定错误的信息很少。

我使用SqlCeEngine.Verify()它,它返回true。根据MSDN

如果校验和匹配并且没有数据库损坏,则返回 True;否则为假。

我也使用SqlCeEngine.Repair(null, RepairOption.RecoverCorruptedRows); 然后再次尝试删除行,命令执行没有任何错误,行被删除。

我很困惑数据库是否损坏?我认为是(但验证返回 true)。如果它已损坏,它是如何损坏的?我为每个数据库访问创建一个新连接,并且我不在SqlCeConnection线程之间共享相同的对象(或任何其他 SQL Server CE 相关对象)数据库部署在移动设备上。

4

0 回答 0