Spo*_*oks 12 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();
}
Run Code Online (Sandbox Code Playgroud)
.Net已经为您管理了连接池,因此您不必担心重用连接,就像您可能使用旧的asp一样.我总是选择几个小的快速呼叫,而不是一直保持打开,因为并非所有打开的时间都通常用于呼叫.您的站点代码也在运行之间.
现在,如果你要一个接一个地连续进行6次调用,那么打开一个并重用是有意义的.但除此之外,我说只要坚持你正在做的事情.
您可能想要查看的唯一事情是连接管理器,这样您就不必一遍又一遍地在.net中创建连接对象.但这与数据库连接与对象创建无关.
您应该尽可能短地保持连接打开。因此,您希望打开连接,执行查询或存储过程,然后关闭连接。尽管这听起来很昂贵,但它利用了 ADO.NET 的内置连接池。当您关闭连接时,它会返回到池中并重新使用,因此您不会受到性能影响。