参考问题How do I share a SQL Server CE database file (.sdf) for multiple processes?
根据MSDN,SQL CE允许256个并发连接到单个数据库。
但即使在SAME机器上,当我打开相同的数据库时,我面临共享冲突错误,但是有两个不同的进程(a.exe和b.exe,代码是相同的)。这里似乎有什么问题?
我正在使用连接字符串
SqlCeConnection("Data Source=d:\test.sdf;Encrypt Database=True;Password=test;File Mode=read write;")
答案 0 :(得分:4)
这不是您想要听到的答案,但您绝不应尝试从多个进程打开SQL CE文件。是的,我知道,SQL CE 4.0允许多个作家,你认为你永远不会有多个作家写同一个记录,但这就像认为只要你戴上眼罩就可以安全地玩弄火焰链锯。
SQL CE修改实时数据文件中的已更改字节。您无法从多个进程中可靠地执行此操作。你认为你可以,但你不能。阅读引用问题的accepted answer;使用面向服务的数据库,如SQL Express。
答案 1 :(得分:0)
在我的情况下,文件以某种方式被锁定。我在线使用TFS并且sdf文件处于锁定/编辑模式,虽然我已经检出文件并从文件属性中删除了只读标志。
要修复它,我必须打开tfs源代码管理浏览器并删除锁定。
请确保该文件未锁定。
注意:这是一篇旧帖子,但我只是添加了这个答案,以便对面临此问题的人有所帮助。