关于程序设计的问题

时间:2009-10-21 16:26:12

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

我正在开发一个Windows Mobile WinForm应用程序,它使用带有.NET Compact Framework 2.0 SP2和C#的Sql Server CE 3.1。

我有一个具有SqlCeConnection对象的表单,在所有执行时间内打开:我在启动时打开连接并在事件结束时关闭它。

我还有一个类来读取Sql Server CE数据库。

我的问题是关于表现:这两种情况中哪一种最好?

1。当我创建一个reader类的对象时,将SqlCeConnection对象传递给构造函数并将其作为属性保存到这个新对象中。

2。总是,当我调用此reader类的方法时,将SqlCeConnection对象作为参数传递。

我认为如果我使用情境1,我有两个SqlCeConnection对象,不是吗?

如果您需要更多详情,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:1)

首先回答你的上一个问题,在场景1中你不会有两个不同的连接。你传入的SqlCeConnection是一个引用,因此表单和reader类都引用了相同的底层连接对象

我实际上并不认为这两种情况存在很大差异。由于您在表单的生命周期中保持连接打开,因此如果您在此辅助类的构造函数或每个方法中传递它,则无关紧要。所以我想只是做方案1会更容易,因为每个调用的参数列表都会更小。

如果您尝试最小化连接的生命周期,这将很重要。例如,在连接到普通SQL Server的Windows桌面应用程序中,您实际上不希望在表单的生命周期中保持打开的连接,因为如果很多人打开了大量表单,那么就会遇到性能问题。你的服务器。因此,在这种情况下,您将在最后一秒创建连接,将其传递到您的阅读器例程以获取数据并立即关闭它。在这种情况下,情景2会更好。

但在移动应用程序中,这种情况对您来说似乎并不重要。您可能是唯一一个连接到数据库的人,因此如果您打开连接并不重要。