我正在尝试设计一个连接到SQL数据库的高效应用程序,我想知道为每个SQL查询创建SQL连接的优点/缺点是什么, 例如,像下面的代码一样,创建一个连接设置一次的类,这样你就可以在课堂上需要时调用它。
class SqlQuery
{
SqlConnection Connection = new SqlConnection(@myConnectionString);
public void fillInfoData()
{
SqlCommand updateCommand = new SqlCommand(
@"my sql query", Connection);
Connection.Open();
updateCommand.ExecuteNonQuery();
Connection.Close();
}
}
或者您应该为每个新查询创建新连接吗?
答案 0 :(得分:6)
您为每个查询打开一个连接,然后当您关闭它时,它会返回到连接池,框架将管理其余的
所以你不必担心保持连接活动,超时等......
MSDN文章
https://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx
答案 1 :(得分:2)
我认为他的意思不是保持一个开放的全局连接对象。但是您需要在需要时创建SqlConnection
,执行该点所需的所有查询(每个查询不是单个连接),然后关闭连接。
因此,如果您有一堆需要执行的查询,则不需要为每个查询提供单个SQL连接,但只需要一个即可。但是,如果您每次用户点击按钮时都在执行查询,那么最好在每次点击时打开一个连接,因为这样可以更轻松地管理关闭和处理连接。