SQL CE文件共享违反本地计算机上的多个进程

时间:2013-12-09 14:59:25

标签: sql .net sql-server sql-server-ce

参考问题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;") 

2 个答案:

答案 0 :(得分:4)

这不是您想要听到的答案,但您绝不应尝试从多个进程打开SQL CE文件。是的,我知道,SQL CE 4.0允许多个作家,你认为你永远不会有多个作家写同一个记录,但这就像认为只要你戴上眼罩就可以安全地玩弄火焰链锯。

SQL CE修改实时数据文件中的已更改字节。您无法从多个进程中可靠地执行此操作。你认为你可以,但你不能。阅读引用问题的accepted answer;使用面向服务的数据库,如SQL Express。

答案 1 :(得分:0)

在我的情况下,文件以某种方式被锁定。我在线使用TFS并且sdf文件处于锁定/编辑模式,虽然我已经检出文件并从文件属性中删除了只读标志。

要修复它,我必须打开tfs源代码管理浏览器并删除锁定。

请确保该文件未锁定。

注意:这是一篇旧帖子,但我只是添加了这个答案,以便对面临此问题的人有所帮助。

相关问题