我现在会在一个for 循环里面对数据库进行操作,每一次操作后,都会把SqlConnection 关闭。 但是当我的for循环次数太多时,就会出现异常,在网上查了下资料,说是 SqlConnection的Close() 方法,并不会即时的关闭数据库连接,而是会存在一个默认的时间,当过了这个时间后,他才会真正的关闭,请问,有能即时关闭的方法么?或者修改那个默认时间的方法? (SqlConnection 的 Dispose() 方法除外)
9 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
for 循环 完毕后在关数据库连接。这样可以减少资源耗费。Close虽然不会立即关闭,但是从连接池获取连接也是要耗费资源的。sql尽量用参数方式,这样可以减少dbserver cpu的占用率,因为sql不需要重复编译。大概代码如下:
using(var con=new Connection())
{
var command=//创建Parameter列表和SqlCmmand
for(int i=0;i<max;i++)
{
//把Value值 给 commnad.Parameters
command.execute()
}
}
当然还有其他的优化方式,但至少要做到上面那种。
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
就是报超时。而且这些方法调用的是封装后的SqlHelper 在这个类里的每个方法都会打开连接,关闭连接。所以造成这样一种情况。有没有办法能即时关闭连接。
江户川乱折腾
TA贡献1851条经验 获得超5个赞
using(SQLConnnection conn=new *****)
{
//
}
这样每次用完就会自己关闭了。但你的需求很诡异啊。是非常诡异,我们都是尽量减少数据库连接,因为连接数据库是很浪费性能的。数据库连接最好是单例的,放在那边,一次初始化永远使用多好啊
- 9 回答
- 0 关注
- 608 浏览
添加回答
举报
0/150
提交
取消