using(connection)能不能自动关闭连接

问题描述

SQLiteConnectioncon=newSQLiteConnection(conString);using(con){con.Oopen();...}Console.WriteLine(con.State.ToString);在代码中,用了using来处理con,让连接自动关闭,可是在实际使用中发现,在using之外,查看连接的状态还是打开的,怎么会这样呢?导致后面的代码,con.Open()出错。请问各位高手,该如何处理?

解决方案

解决方案二:
是不是应该这么用?

using(SQLiteConnectioncon=newSQLiteConnection(conString)){con.Oopen();...}
解决方案三:
理论上说,离开using之后会被自动调用Dispose,连接会被关闭,除非你没有实现SQLiteConnection.Dispose方法,或者SQLiteConnection.Dispose方法内部没有关闭连接,
解决方案四:
using(SQLiteConnectioncon=newSQLiteConnection(conString)){con.Oopen();...}
解决方案五:
using会自动释放后面括号中的内容,所以会释放连接的
解决方案六:
能的。它是一个代码域,出了代码域,就会自动关闭连接,并且释放资源
解决方案七:
首先要理解C#连接池的原理using等于最后执行Dispose,但是Dispose并非关闭连接而是释放连接到连接池所有如果你连接池的数量大于数据库支持的数量open就可能有问题,你可以找下有没有连接字符串参数来控制数量
解决方案八:
引用3楼sandy945的回复:

using(SQLiteConnectioncon=newSQLiteConnection(conString)){con.Oopen();...}

这样频繁的建立连接对象,是不是很消耗资源呢?本来我想建一个连接对象,然后不断的打开和关闭这该如何实现呢?谢谢
解决方案九:
using是自动释放对象。打开关闭这个不要太过于纠结于此,到时候如果需要调优的时候再考虑
解决方案十:
using(SqlConnectionconnection=newSqlConnection(ConnectionStrings)){}SqlConnection对象会自动关闭的哦。

时间: 2024-10-28 22:02:13

using(connection)能不能自动关闭连接的相关文章

Python封装pymongo模块自动关闭连接

在我工作的项目里面使用了mongodb.自然也用到了pymongo.但是它都是在大片的函数里面使用类似于这样的方式  代码如下 复制代码 import db def test():     ...     db.test.find_one()     ... 但是问题是在使用完都没有关闭连接,这样多台服务器连接我这台mongodb服务器,在业务高峰期就会占满我的连接, 我当时总结造成这个原因的问题有以下三种:     上面说的用完db不关闭连接而是等着db超时     注意上面的import,其

如何尽快释放掉Connection对象建立的连接?

connection|对象 首先,建立一个Conn的连接对象,然后连接到数据库data.mdb中,取得连接句柄后,把它保存在session("conn")这个Session会话变量中,在打开记录集前,从session("conn")中取出句柄,借助于Session对象,我们可以使不同的ASP页面共用一个连接对象,减少了对服务器内存的开消,而我们也不需要担心当一个用户因为错误操作导致服务器不能释放该被占用的Session连接对象,因为每个用户的Session对象是有一

spring +quartz 当每个job执行完,会自动关闭连接吗

问题描述 我将quartz注入到spring中,然后由spring去调hibernate的相应方法操作到数据库.quartz中每隔一段时间就触发一个任务,我不清楚Quartz每执行完一个任务,它会不会关闭当前的连接,等到下一个任务需执行时,然后又打开数据库的连接?(如果没有关闭的话,会导致内存溢出,或连接池中的连接用完了(连接会不会还给连接池),其他任务不能执行)

c3p0连接池中获取的Connection对象的close()方法是真的把连接给关闭了?

问题描述 c3p0连接池中获取的Connection对象的close()方法是真的把连接给关闭了? 自己做写了一个管理数据源的DBManager,构想中从数据源里面获取的Connection使用完之后执行close()方法,然后把Connection对象闲置回连接池中. 但是测试出来的结果好像每次执行close()之后connection就销毁了. 代码如下: DBManager.java package ben.DBUtils; import java.sql.Connection; impo

jdbc连接sqlserver数据库示例_java

1.过程: 1>注册驱动器类:Class.forName() 2>连接数据库: 复制代码 代码如下: String url = "jdbc:sqlserver://localhost:1433;DatabaseName=DataBaseName";String uername = "dbuser";String password = "secret";Connection conn = DriverManager.getConnect

数据库连接池和Tomcat连接池的配置问题

          在做系统优化的时候师哥给我们提了一个连接池的概念,问我们有没有配置,我对这个概念一无所知,于是进行了一些研究,连接池有很多,比如WCF.EF还有数据库.CAS也可以配连接池,这些连接池用通俗的语言来说就是一个池子,池子里的资源可以收放自如,不用的时候可以立即收回,和我们通常用到USing的作用有些相似,就是可以自动的释放connection资源.         数据库中连接池的配置如下:         <span style="font-size:14px;&quo

WinXP建立直接电缆连接将两台电脑连接起来

  直接电缆连接是只有两台电脑时最常用的局域网解决方案之一.直接电缆连接这种方法具有投资小.简单实用的特点,它只需要一根连接线就能利用计算机上的并口或串口将两台电脑连接起来,实现资源共享.故比较适合于家庭有两台电脑,特别是一新一旧两台电脑的互联.那么该如何在WinXP下建立直接电缆连接呢? 我们可以使用New Connection Wizard(新建连接向导)与其它计算机建立直接电缆连接.尽管直接连接方式是与您希望获取数据的计算机进行连接的最简单且最安全方式,然而,它却要求进行连接的客户端与服务

连接池-关于Java服务长时间运行出现各种bug问题,可能运行几天没问题,但是运行十几天就会出现各种bug

问题描述 关于Java服务长时间运行出现各种bug问题,可能运行几天没问题,但是运行十几天就会出现各种bug 服务使用的是ScheduledThreadPoolExecuto定时任务,有使用到全局变量,数据库连接池使用的是c3p0,我感觉出现问题的原因可能就是这三个里哪个导致的,程序是没问题的,就是运行久了就出现各种问题了,而且很莫明奇妙,比如本来是好好的运行久了日志中的中文从那个时刻起往后全都乱码了.请问这是怎么回事? 定时任务: ScheduledThreadPoolExecutor boo

如何在ado中使用connection 对象

ado|connection|对象 什么是connection对象? 一个connection对象描述了到数据源的物理连接.你可以使用odbc也可以利用ole db来连接数据源.当你打开一个connectiont对象时你就会试图连接数据库.Connection对象的state属性会告诉我们连接是否成功.通过connection对象的execute方法向数据源发送SQL语句或运行存存储过程.如果你向数据源发送的命令要求数据源返回记录集,那么记录集对象会自动的被创建.当你连接上数据库后你可以关闭co