将相同的sqlconection传递给同一类中的> 1方法

时间:2011-08-05 15:57:10

标签: c#

我有一个专注于数据库操作的课程(例如写/读等)。有没有一种优雅的方法将相同的SqlConnection传递给每个methoid,而不是在每个参数中将一个新对象作为局部变量?

我记得在这个网站上看到一个使用lambda表达式的例子。这是理想的但无法找到它。

由于

2 个答案:

答案 0 :(得分:1)

恕我直言,在类之间传递SqlConnection对象是一个绝对糟糕的主意。

在使用之前简单地创建一个新的连接对象要好得多。换句话说,在每个进行数据库调用的方法中。 SqlConnection是一个IDisposable类,用于处理非托管资源。如果有东西被冲洗掉,那么你就有可能泄漏连接。

此外,创建和处理这些连接对象是一种非常快速的操作,因为连接池的处理层比代码层低得多。这意味着通过传递它所获得的唯一的好处是每执行数据访问的方法少1行代码;虽然缺点是可能无法在不关闭应用程序的情况下执行任何其他sql调用。如果这是一个网络应用程序,那么这是一个完全可怕的决定,因为它可能会关闭整个网站。

也就是说,传递连接字符串是可以的,虽然这通常是通过配置文件加载的。

答案 1 :(得分:0)

你也可以使用可选参数,如果没有传入连接且参数值为null,那么你创建一个,否则你只需使用传递的那个。