在C#中共享表单之间的数据库连接的最佳方法是什么?

con*_*mer 0 c# database forms oracle parent-child

我有一个主窗口形式,打开许多其他形式.所有表单都有一个共同的oracle数据库连接.

我是C#的新手(到目前为止一直使用visual basic),我不确定实现这一目标的最佳方法.

潜在选择:

  1. 将连接传递给子表单作为输入.
  2. 将主窗口窗体作为父窗口传递给子窗体并使用其成员变量连接.
  3. 我还没有考虑过其他一些选择.

编辑:请参阅@ C4ud3x的答案,以获取执行该功能的示例类.

D S*_*ley 7

选项3:

不要分享联系.不要为多个请求保持连接打开(除非它们在代码中 紧接在一起).不要将连接公开为公共属性.

连接由.NET汇集,因此创建它们并不是一个昂贵的过程.在需要时创建连接,使用它,然后处理它.这样做的有效方法是使用using块.

如果你想有一个集中的地方来存储连接字符串用来创建这很好的连接-您可以使用的app.config或一些其他的机制来存储在一个地方.

  • @ C4ud3x我是.这就是问题所说的."传递连接......","......使用其成员变量连接." 此外,其他平台可能不会像.NET那样集中连接,因此共享它们可能会在这些平台中提供_some_优势. (4认同)