gpt4 book ai didi

c# - 一个关于程序设计的问题

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:33 24 4
gpt4 key购买 nike

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

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

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

我的问题是关于性能的:这两种情况中哪种最好?

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

2.总是,当我调用这个读取器类的方法时,将 SqlCeConnection 对象作为参数传递。

我想如果我使用情况 1,我有两个 SqlCeConnection 对象,不是吗?

如果您需要更多详细信息,请告诉我。

谢谢!

最佳答案

首先回答您的最后一个问题,不,在场景 1 中您不会有两个不同的连接。您传入的 SqlCeConnection 是一个引用,因此表单和读取器类都具有对同一基础连接对象的引用.

实际上,我认为这两种情况没有太大区别。由于您在表单的生命周期内保持连接打开,因此将它传递到此辅助类的构造函数或每个方法中实际上并不重要。所以我想只做场景 1 会更容易,这样每个调用的参数列表就更小了。

如果您试图将连接的生命周期降至最低,这将很重要。例如,在连接到普通 SQL Server 的 Windows 桌面应用程序中,您真的不想在表单的生命周期内保持打开的连接,因为如果很多人打开大量表单,您就会遇到性能问题你的服务器。所以在那种情况下,您将在最后一秒创建连接,将其传递到您的读取器例程以获取数据并立即关闭它。在这种情况下,方案 2 更适合您。

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

关于c# - 一个关于程序设计的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1601973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com