0

我在WPF 应用程序中使用SQL Server Compact Edition DB

我创建了一个到数据库的连接并在应用程序的整个生命周期内保持打开状态 - 连接仅在应用程序退出事件触发时关闭和处置。

如果出现应用程序崩溃怎么办?当应用程序进程终止时,连接会自动释放吗?

4

3 回答 3

1

将 UnhandeledException 处理程序添加到您的应用程序,并在此处关闭全局连接(如果它仍处于打开状态)。即使应用崩溃了,当appdomain关闭时数据库连接会喊Down,你可以通过崩溃应用来测试,看看是否可以从文件资源管理器中删除数据库文件。

于 2013-09-12T15:47:14.373 回答
0

SQL Connection、FileStream .... 是托管代码,但它们也使用非托管非托管资源,因此它们不受 GC 的直接控制。您需要确保处置这些对象。好的做法是在退出范围时调用 dispose 的 using() 关键字。

如果不关闭这些资源,就会发生内存泄漏。

于 2013-09-12T14:49:14.720 回答
0

不,当应用程序进程终止时,连接不会自动释放。不建议长时间保持活动的数据库连接。当您的应用程序频繁访问数据库时,连接池是一种选择。

于 2013-09-12T14:55:11.463 回答