双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

为我昨天问了个白痴问题--散分

ETstudio ETstudio 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
今天在论坛上我问的一个白痴问题--SqlConnection自动关闭问题

原来的ado.net 连接池的知识在1.1就看过了,可是看过就忘记了,直到今天才把这个基础知识给掌握了,原文的问题是
string connectionString = "server=192.168.1.2;user id=××××;password=test;database=××××;min pool size=4;max pool size=40;packet size=3072";
using (SqlConnection Conn = new SqlConnection(connectionString))
{
Conn.Open();
SqlCommand Cmd = Conn.CreateCommand();
Cmd.CommandText = "select top 1 * from Book_Info";
using (SqlDataReader Reader = Cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
Reader.Close();
}

Conn.Close();
}
为什么这样数据库连接没关闭,确切的说应该是连接池并没断开,我把两者混成一个,因为在asp里是一个 。

先说说为什么会觉得他没关闭。公司刚刚从asp转到asp.net,服务器原来使用asp连接数据库的时候,数据库都是连上-操作-断开,数据库连接信息中也就很少几个连接,毕竟并发
的人数也不会那么多。
转到asp.net以后,数据库连接就有很多个,明明已经close了,但是还是那么多个,所以那问了上面那个比较白痴的问题。

首先,先说asp.net的close 和asp 里close的区别,asp里的close是真的和数据库断开,下次使用时候再次连接。
asp.net里的ado.net是把连接交给了连接池去管理,close的时候只是还给连接池一个连接,open的时候再从连接池里拿会一个可用连接。所以连接池里有多少个连接是ado.net在控制,
跟asp.net里的close是无关的,这样的话,自然不会影响数据库上的连接数减少。

其次说说CommandBehavior.CloseConnection 这个用Reflector可以查到如下代码
bool flag2 = this.IsCommandBehavior(CommandBehavior.CloseConnection);
if (flag2 && (this.Connection != null))
{
this.Connection.Close();
}

自然是自动关闭的

最后就是说说连接字符串的问题了
//string connectionString = "server=192.168.1.2;user id=×××;password=test;database=****;min pool size=40;max pool size=40;packet size=3072";

min pool size=40;max pool size=40 这里一个设置最小连接池数和最大连接池数,需要注意的是,如果象这样设置,第一个数据库连接,连接池会再建立连接后,继续建立连接,直到40个为址

那么怎么设置成跟asp中ado一样呢,只使用一个连接,需要在连接语句中添加pooling=false ,当然这个是不提倡用的,因为连接池减少了与数据库频繁连接的开销。


另外谢谢Ivony ,此人什么东西都刨根问底,值得学习。我就是有时候太懒了 。。。呵呵
...全文

相关推荐

产业园区运营负责人如何利用平台挖掘企业技术需求并精准对接?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

Challenges in Functional Verification of PCIe 3.0 Devices.pdf

Challenges in Functional Verification of PCIe 3.0 Devices.pdf

Kernel_RDMA

轻美图纯PHP图库网站源码(内含1000+美图).zip

纯PHP的移动端图库站:把图片按「img/日期目录/」存放,自动按上传批次归组,前台封面卡瀑布流展示,手机电脑都能看。 不依赖数据库服务、不依赖框架,PHP自带SQLite即可。内含1000+美图,虚拟主机上传即用。

智慧浩海

chrome-win32-158.0.8127.18(Beta).zip

chrome-win32-158.0.8127.18(Beta).zip

LCG元

无刷直流电机BLDC转速电流双闭环+无位置传感器控制仿真【仿真+详解说明报告+参考文献】

内容概要:本文提供了一套关于无刷直流电机(BLDC)转速电流双闭环控制与无位置传感器控制的Simulink仿真资源,包含完整的仿真模型、详尽的说明报告及参考文献。资源核心聚焦于BLDC的高性能控制策略,重点实现了基于滑模观测器(SMO)的无位置传感器控制技术,并系统对比了模糊PID与传统PID控制在BLDC调速系统中的性能差异。内容涵盖了转速环与电流环的双闭环PI控制器设计、反电动势过零检测、换相逻辑、PWM调制等关键技术环节,同时提供了模糊神经网络PID等先进智能控制算法的扩展仿真模型,旨在帮助用户深入理解BLDC的控制原理、无感控制实现方法及多种智能控制策略的仿真建模技术。; 适合人群:具备一定电力电子技术、自动控制理论和电机学基础,从事电机驱动控制、电力传动系统研究或相关产品开发的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习和掌握无刷直流电机双闭环控制系统的设计流程与Simulink仿真建模方法;② 深入研究并实践基于滑模观测器的无位置传感器控制技术的实现原理与参数整定;③ 对比分析模糊PID、传统PID及模糊神经网络PID等多种智能控制算法在BLDC调速系统中的动态响应、抗干扰能力和稳态精度等性能差异;④ 为电机控制相关的课程设计、毕业设计、科研项目或工程开发提供可复现的仿真模型和理论依据。; 阅读建议:建议读者结合所提供的详解说明报告与参考文献,严格按照步骤在Simulink环境中搭建、调试和运行仿真模型。学习过程中应重点关注控制器参数(如PI参数)的整定过程、滑模观测器的设计与抖振抑制、以及不同控制策略下系统的启动、调速和抗负载扰动等动态响应特性,通过大量的对比仿真实验,深化对BLDC控制理论与工程实践的理解。

woshilaiwade
评论 60
收藏 已收藏
分享
返回顶部
ETstudio
C# 111,129 成员 642,540 内容