【发布时间】:2012-02-08 15:06:13
【问题描述】:
背景:
在我的 windows phone 项目中。我使用本地 SQL CE 数据库来存储日期。使用 LINQ to SQL 以编程方式创建数据库表。
通过几个线程中的各种数据上下文实例访问该数据库。
问题来了:
我为我的应用程序的用户提供了删除所有数据和注销的选项。当用户选择它时,我使用 datacontext 的 DeleteDatabase 方法删除数据库。但是,我总是收到数据库正在被另一个进程使用的错误,因此无法删除。
任何朝着正确方向的轻推都会让我开心。
【问题讨论】:
-
当您调用 Delete DB 时,您是否还有任何连接处于打开状态?最有可能是您的进程可以访问数据库而不是其他东西。
-
好吧,我关闭了所有我知道可以打开的连接。有没有办法获取正在使用数据库的进程并杀死它们?
-
您是否将 DataContext 的所有实例包装在 using 语句中和/或处置它们?
-
@ErikEj 感谢您指出这一点。我忽略了一个没有使用“使用”语句的实例。改变它解决了这个问题。就像我说你让我开心:)
标签: c# windows windows-phone-7 sql-server-ce