c# - 最佳实践?打开和关闭多连接,或 ado.net 的一个大打开连接

标签 c# sql database ado.net

我正在使用 ADO.Net 进行一些数据库连接,我只是希望我的做法是正确的。我正在为每个存储过程打开和关闭多个连接。或者我应该将其包装在一个开放的连接中(数据库上的资源可能更少?)谢谢,如果有什么奇怪的或我可以做得更好的事情请告诉我,谢谢!

示例:这个,但我有 6 个......

using (SqlConnection conn = new SqlConnection(ConnectionString))
{
    SqlCommand cmd = new SqlCommand("spSelectAllTrip", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    conn.Open();
    ddlTripTypeA.DataSource = cmd.ExecuteReader();
    ddlTripTypeA.DataTextField = "TripType";
    ddlTripTypeA.DataValueField = "TripTypeAID";
    ddlTripTypeA.DataBind();
}
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
    SqlCommand cmd = new SqlCommand("spSelectAllTripB", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    conn.Open();
    ddlTripTypeB.DataSource = cmd.ExecuteReader();
    ddlTripTypeB.DataTextField = "TripType";
    ddlTripTypeB.DataValueField = "TripTypeBID";
    ddlTripTypeB.DataBind();
}

最佳答案

.Net 已经为您管理了连接池,因此您不必像使用旧的 asp 那样担心重新使用连接。我总是进行几个小的快速调用而不是一直保持一个打开,因为它打开的时间并不总是用于调用。您还可以让您的站点代码在运行期间执行一些操作。

现在,如果您要一个接一个地进行 6 个连续调用,那么打开一个并重复使用可能是有意义的。但除此之外,我要说的是坚持你正在做的事情。

您可能唯一需要研究的是连接管理器,这样您就不必在 .net 中一遍又一遍地创建连接对象。但这与数据库连接没有任何关系,而只是对象创建。

关于c# - 最佳实践?打开和关闭多连接,或 ado.net 的一个大打开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3344953/

相关文章:

c# - 与 Double.NaN 相等

c# - 将字符串整数转换为 int 的任何比 convert.toint32 更有效的方法

c# - 防止非托管函数指针垃圾回收

mysql - 我的 sql 查询有些奇怪

SQL Server Order To 具有大小写和多列

iphone - 在 NSManagedObject 中释放 NSData

c# - 如何修复 Visual Studio 2019 中的错误 CS0246

sql - 静态 hibernate 和空运行 HQL 查询

mysql - 设计卖家、类别和产品表的最佳方法是什么?

database - 当插入比查询多得多时必须应用数据库规范化吗?