为每个查询启动一个新的sqlconnexion

jjjwad0x  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(198)

我是winforms.net的新手,我正在使用dapper处理mysql数据库。
我应该重新开始吗 SqlConnexion 对于每个查询或仅一个查询 SqlConnexion 够整个申请了吗(我从一开始就启动它,然后关闭应用程序进行处理)
哪种方法最好?为什么?

pengsaosao

pengsaosao1#

正如damien在对这个问题的评论中所写的那样,还不清楚您是否在使用mysql(因此, MySqlConnection )或sql server(拼写错误的 SqlConnection 在问题中)。
然而,这个细节与答案无关,因为 SqlConnection 以及 MySqlConnection 两者都实现了连接池,所以最好的做法是尽快关闭并处理它们。
连接池的基本概念是,当您第一次使用ado.net提供程序时,它会创建一个到数据库的连接,但是当您关闭应用程序中的连接时,ado.net会使基础连接保持活动状态,以便下次打开到数据库的连接时,您不需要经历创建实际连接的所有开销—ado.net简单地重用现有连接。
微软建议关闭并处理 SqlConnection 每次使用后,由于这是基础连接返回池的唯一方法-从sql server连接池(ado.net)页:
小心
我们强烈建议您在使用完连接后始终关闭连接,以便将连接返回到池中。您可以使用 Close 或者 Dispose 研究方法 Connection 对象,或通过打开 using c#中的语句,或visualbasic中的using语句。未显式关闭的连接可能不会添加或返回到池中。有关详细信息,请参见using语句或how to:dispose a system resource for visual basic。
mysql文档还建议不要使用应用程序范围的连接。实际上,他们建议不要创建 MySqlConnection 一点也不,但是让我们 MySqlCommand 通过使用以连接字符串为参数的重载来管理连接:
要按设计的方式工作,最好让连接池系统管理所有连接。不要创建的全局可访问示例 MySqlConnection 然后手动打开和关闭。这会干扰池的工作方式,并可能导致不可预知的结果甚至异常。
一种简化事情的方法是避免手动创建 MySqlConnection 对象。而是使用以连接字符串作为参数的重载方法。使用这种方法,connector/net将使用连接池系统自动创建、打开、关闭和销毁连接,以获得最佳性能。

30byixjq

30byixjq2#

不需要为每个查询启动新连接,因为连接首先由dbms和方法构建和维护。你所要做的就是从一个简单的开始 try catch 语法并在程序中使用它。

相关问题