我有一个Windows服务应用程序,它每5秒轮询一次数据表,想知道我应该每次创建一个连接并重复使用它,或者每次在5秒后创建新连接以从数据库读取。
答案 0 :(得分:2)
重用最有效。利用内置连接池功能。
答案 1 :(得分:2)
要说清楚,当你说“创建一个单一的连接”时。我知道要创建一个连接对象的实例。
然后是,在服务启动时创建一个连接实例,并在服务停止时处理它。
但是,每次使用前后都要确保连接打开()和关闭()。
ADO.NET会将物理连接汇集到数据库中,这样就不会出现任何性能问题。
答案 2 :(得分:0)
除非有很多其他应用程序竞争与同一个DB的连接,否则我会重用该连接。但是,您应该在使用之前检查连接状态,因为连接可能由于某些原因而变得陈旧,例如:数据库重新启动,管理员杀死所有活动连接或任何其他Murphys。如果连接过时,请创建新连接并开始使用它。
答案 3 :(得分:0)
声明一个静态的Connection属性。在get方法中,检查连接,如果连接未打开,请再次连接。这样的事情..
public static SqlConnection conn
get{
if(this == null)
{
this = new SqlConnection();
}else{
if(!this.Open()){
this.Connect();
}
}
}
你现在可以使用conn。