mm非常非常急的问题!在C#中需要关闭连接吗,如果不关闭,会不会影响访问速度! 不会影响速度。ADO.NET自动有连接池。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 _spDA.Disponse();//用完以后清除所占资源~~~ 一个一个的打开第一个打开了connection用完后立即关闭下一个要用再打开就行了,当然用完后还是要立即关闭 如果你每次都是用同样的数据(DATASET),把这个DataSet定义成公有变量 不好吗?如果是WEB应用,也有方法可以DataSet传递呀!比方 session. 如果你只是调用_spDA.Fill方法,那你不必显式开闭数据连接...Fill 方法使用关联的 SelectCommand 属性所指定的 SELECT 语句从数据源中检索行。与 SELECT 语句关联的连接对象必须有效,但不需要将其打开。如果调用 Fill 之前连接已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 Fill 之前连接已打开,它将保持打开状态。 强力建议 关闭!~conn不关闭 会浪费 服务其资源还会 出现 程序 无法 打开新的数据连接问题 建议关闭连接,不然浪费资源!要不和ado有什么区别! 关闭连接,因为每个连接都会占用数据库服务器的资源可以这样子打开时:if (sqlConn.state != ConnectionState.open){ sqlConn.Open();}关闭时:if (sqlConn.state != ConnectionState.closed){ sqlConn.Close();} //建议如果是在web情况下,请关闭,在Windows form中可以看情况,如果处理数据是多个过程,可以在取之前打开一次,到所有数据出理完后再关闭连接。 不用了一定要关闭,用的时候再开,不用担心其实ado.net默认的会自动用连接池 不用关闭!dataset本身就是断开式连接! 我开发过大型mis,有位同伴没有关闭连接, 生生把一个服务器给弄死了。一看,有100多个连接被他打开没有关闭。只有你关闭后,这个打开的连接才回归连接池,否则只从pool中取连接,不把用完连接归还pool中,也不行的。良好的企业级开发习惯就是用时再连,用完后关闭。再次打开时不会影响速度,因为数据提供者会从连接池中高速给你分配一个已经存在的连接。 使用前打开(OPEN),使用完后关闭(CLOSE) 打开前先判断是否是已打开的,否则打开;使用完毕立即关闭!详见 Duwamish7.0或 http://kingtechweb001.dns0755.net 关闭,虽然实际上ADO.Net中的关闭是将连接放入缓冲池 关闭连接,因为每个连接都会占用数据库服务器的资源可以这样子打开时:if (sqlConn.state != ConnectionState.open){ sqlConn.Open();}关闭时:if (sqlConn.state != ConnectionState.closed){ sqlConn.Close();} 第一种方法:打开一个连接多次使用,如:SqlConnection cn = new SqlConnection(connectionString);cn.Open();SqlDataAdapter sqlAda = new SqlDataAdapter(selectCommandText,cn);SqlDataAdapter sqlAda1 = new SqlDataAdapter(selectCommandText,cn);多次取数据用同一个连接;第二种方法:SqlConnection cn = new SqlConnection(connectionString);cn.Open();SqlDataAdapter sqlAda = new SqlDataAdapter(selectCommandText+selectCommandText+...+selectCommandText,cn);一个连接一次取出多个表;第三种方法:用一个连接,操作数据后,关掉,再取数据时再开一个新的连接,用完再关掉...... 当然要关闭啊不管C#有没有垃圾回收器,问题是数据库服务器的链接数过多,是数据库服务器先当机,而不是web服务器! 当然要关闭了,但只要用到close就可以了,象java一样,.net有自动回收技术,用不着调用dispose,当然你实在要用也没问题! 同意chNET(有神论者)的观点,mm上面的代码来看,Adapter在Fill()完成之后会自动关闭与数据库的连接,当然手动关闭是个好习惯, 但是如果他都是那样写的并不会影响速度! Fill是自动打开关闭的。所以不用手动控制。如果是手动打开的connection,一定要关闭。因为连接池满的时候会出错。另外,如果不关闭,会让GC很难做。 你要根据你的数据库访问数量,设置连接池的最大数量。基本原则是: 尽量晚的open尽量早的close SqlDataAdapter这个函数是微软开发的类,这个类可以自己打开数据库,然后自己关闭数据库,如果你用这个类是不会影响速度的!但是如果你用conn.open()的话,你一定要记住及时打开及时关闭,这样才不会影响速度!这要养成良好的编程习惯! try{}catch{}finally{conn.Close();conn.Dispose();} 一定要关闭,不过,还有一个偷懒的办法,就是:在数据库连接字符串中有一个参数ConnectionLifeTime用它来设置每个数据库连接的超时时间 怎么将null的参数化 急急,c# winform RDLC报表的问题 ppt在点击结束音乐时,如何让音乐逐渐变小? vs 2008 关于引用的问题? C#操作sql数据库,更新数据,如何只更新其中的几项 sheet中如何让各行显示不同的颜色,在线等 如何判断文件在指定路径的文件夹中是否存在 请教如何将字符串转化成byte型 SqlBulkCopy 插入的问题 web service 遇到的问题 100分求programming c#电子书,急啊 修改系统日期用哪个函数?
_spDA.Disponse();//用完以后清除所占资源~~~
第一个打开了connection用完后立即关闭
下一个要用再打开就行了,当然用完后还是要立即关闭
如果是WEB应用,也有方法可以DataSet传递呀!比方 session.
conn不关闭 会浪费 服务其资源
还会 出现 程序 无法 打开新的数据连接问题
要不和ado有什么区别!
可以这样子
打开时:if (sqlConn.state != ConnectionState.open)
{
sqlConn.Open();
}
关闭时:if (sqlConn.state != ConnectionState.closed)
{
sqlConn.Close();
}
如果是在web情况下,请关闭,
在Windows form中可以看情况,如果处理数据是多个过程,可以在取之前打开一次,
到所有数据出理完后再关闭连接。
可以这样子
打开时:if (sqlConn.state != ConnectionState.open)
{
sqlConn.Open();
}
关闭时:if (sqlConn.state != ConnectionState.closed)
{
sqlConn.Close();
}
打开一个连接多次使用,如:
SqlConnection cn = new SqlConnection(connectionString);
cn.Open();
SqlDataAdapter sqlAda = new SqlDataAdapter(selectCommandText,cn);
SqlDataAdapter sqlAda1 = new SqlDataAdapter(selectCommandText,cn);
多次取数据用同一个连接;第二种方法:
SqlConnection cn = new SqlConnection(connectionString);
cn.Open();
SqlDataAdapter sqlAda = new SqlDataAdapter(selectCommandText+selectCommandText+...+selectCommandText,cn);
一个连接一次取出多个表;第三种方法:
用一个连接,操作数据后,关掉,再取数据时再开一个新的连接,用完再关掉......
基本原则是:
尽量晚的open尽量早的close
{
}
catch
{
}
finally
{
conn.Close();
conn.Dispose();
}
在数据库连接字符串中有一个参数ConnectionLifeTime
用它来设置每个数据库连接的超时时间