我需要一些帮助,我的项目中有一个SQL Server CE数据库,我在加载第一个表单时打开连接并保持打开,你知道通常的:
if (con.State == ConnectionState.Closed)
{
con.Open();
}
它工作得很好,但是它打开连接的第一个时刻太长了。
我的问题是,是不是有办法让开放过程快一点,以便我的程序的用户不会等待它打开?
提前致谢...
答案 0 :(得分:0)
给定的API可能在open
命令上有一堆重载,但是下面发生的事情几乎是一样的。除非您切换到完全不同的API或其他数据库,否则无法“加速”该过程。
您唯一能做的就是通过将连接的开放移动到应用程序生命周期的其他部分来缓解问题,用户可能不会注意到或意外延迟。
广泛使用的一个技巧是实现这种轻微的操作是在向用户显示启动画面时进行初始化。启动画面可能有一些花哨的图形和文字来“娱乐”最终用户。您甚至会看到启动画面已更新应用程序在该特定时间执行的操作。不是非常有用,但可能足以让用户有兴趣分散注意力。
当用户抱怨初始化步骤耗时太长时,我就这样做了一次。在我发布更改后,最终用户发誓应用程序执行得更好。事实并非如此。我只是操纵了感知。
答案 1 :(得分:0)
有很多原因,为什么打开SQL Compact连接可能会非常慢:
1:数据库已在另一个平台上创建 (例如Windows 7 => Windows XP)
2:RSA文件夹上的ACL(访问控制列表)已损坏
3:无效的Internet代理配置
我在博客文章中提供了更多有关变通方法的详细信息和建议:http://erikej.blogspot.dk/2013/08/faq-why-is-opening-my-sql-server.html