Windows移动Compact Framework SqlCeConnection

时间:2010-03-11 21:20:31

标签: c# windows-mobile compact-framework sql-server-ce

我听说在应用启动时打开一个连接并在应用关闭时关闭它会更好。

多个连接会出现什么问题?

那里的任何文章都认为最好有一个连接?

您对sql ce有什么经验?

2 个答案:

答案 0 :(得分:2)

这取决于。为了提高性能,如果始终存在与数据库的实时连接,则SQL CE最有效,因为每次连接时引擎都不必构建所有内容。

然而,只有一个连接会导致数据泄漏到文件中,并且在发生灾难性故障时数据丢失或损坏的可能性更高。

我倾向于在应用启动时打开与数据库的“虚拟”连接,并且该连接始终打开但很少或从未实际使用过。如果你愿意,这可以保持发动机“准备就绪”。对于实际的数据访问,我使用单独的连接并根据我正在做的活动管理状态,通常在多个查询中保持打开状态(如果你愿意,可以使用伪事务),但不能无限期地打开它。

答案 1 :(得分:2)

在我们的SQL CE 3.5 / Compact Framework 3.5应用程序中,我们在启动时打开一个连接,并在应用程序关闭之前保持打开状态。应用程序中几乎每个用户交互都需要数据库,保持连接打开比按需打开和关闭更快。

所有数据更新都在事务中执行。我们Commit使用CommitMode.Immediate选项进行交易。这可确保立即将数据更改刷新到文件中,从而最大限度地减少数据丢失的可能性。