不被重视的基础,高效地使用ADO.net连接对象

很多初学者朋友在做项目时遇到过这样的问题,那就是在本地调试运行的程序正常,放到服务器上也是正常的,但是如果有了一些并发之后,就会发现页面会出现打不开的现像,其实大多数时候是因为Ado.net链接没有处理完善。当然对于老鸟来说这种情况是不会发生的。

其实避免出现这种情况和提高Connection对象的使用性能的方式很简单,我们这里列出两种方式供初学者或遇到过这种问题的朋友选择:

1.使用try-catch-finally语句块:

  1. SqlConnection conn = new SqlConnection("链接字符串"); 
  2. try 
  3.     conn.Open();//打开数据库链接 
  4.      
  5.     //添写针对链接对象所做的一些操作 
  6. catch (SqlException err) 
  7.     //这里可以将错误信息写入日志 
  8. finally 
  9.     conn.Close();//在完成conn对象的操作后需要关闭链接 

    这么做的原因是,虽然.NET框架中有垃圾回收机制,但是我们为了能确保资源的有效利用,所以需要尽早的释放到资源,以保证其能被有效的利用起来。同时,我们也不建议大家直接在操作完成后使用conn.Close()方法,因为这样的话,如果在本次操作出现错误后,conn将不再继续往下执行,那么意味着链接就不会关闭,其结果是你第二次操作时,将来提示链接没有被关闭。

2.也可使用using语句块:

  1. using (SqlConnection conn = new SqlConnection("链接字符串")) 
  2.     conn.Open(); 
  3.     //添写针对链接对象所做的一些操作 

    有兴趣的朋友,可以去研究一下using关健字在C#中的各种用法,那么在这里using所起到的作用是不论如何退出语句块,都会释放到conn对象的资源。

    当然,我的建议是大家可以结合起来使用,因为using对象可以确保资源的释放,而try语句块可以让我们抓取异常,并且写到Log中。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

quick 中实现单例

直接贴代码 local danli nil local classname class("classname") function classname:getInstance() if danli nil then danli classname.new()     end return danli end return classname 使用 local duixiagn classname:getInstance()转载于:https://…

openssl创建CA并签发证书

一、创建私有CA根证书 1、创建CA目录 rootDESKTOP-JP3S3AN:/home/wsl/openssl_pro# mkdir -pv /etc/pki/CA/{private,certs,crl,newcerts} mkdir: created directory /etc/pki/CA mkdir: created directory /etc/pki/CA/private mkdir: created directory /etc/pki/CA/certs…

[react] react中的setState和replaceState的区别是什么?

[react] react中的setState和replaceState的区别是什么? setState:更新状态 replaceState:替换状态 个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

栅格像元做地理坐标映射后的坐标值是像元中心点还是其他位置?

做了下实验,GDAL做完映射后像元(x,y)--->(lat,lon),得到的坐标值是像元左上角的坐标值。 下面这个看到更清楚:(其实我做了一个替换,实际我求的是左上点和右下点(通过&…

TCP的FIN、ACK、SYN、URG、PSH及攻击方式

From: http://www.hackbase.com/tech/2009-10-08/56746.html 三次握手Three-way Handshake  一个虚拟连接的建立是通过三次握手来实现的  1. (B) –> [SYN] –> (A)  假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的…

QT Openssl no OPENSSL_Applink 解决

QT5.15.2安装时候选择了openssl1.1.1库,在开发过程中出现OPENSSL_Applink。 解决办法:将openssl include文件下的applink.c 添加到工程中,即可。

Java学习----运算符与表达式

一.运算符 1.算术运算符 - * / % -- public class Test7 {public static void main(String[] args) {int x 10;int y 3;float f 3.5f;System.out.println(x/y); // 3System.out.println(x%y); // 1System.out.println(x/f); // 2.857143 x隐式转换成floatSystem…

Tomcat 6 数据源配置

近来换了TOMCAT6&#xff0c;配置MYSQL数据库的数据源&#xff0c;在网上查找相关解决方案&#xff0c;后调试解决如下&#xff1a; 修改$CATALINA_HOME/conf/context.xml文件&#xff0c;加入如下代码&#xff1a;<Context reloadable"true"> <Watche…

OpenSSL签发证书时编码UTF8STRING PRINTABLESTRING不匹配

问题如下&#xff1a; Check that the request matches the signature Signature ok The countryName field is different between CA certificate (CN) and the request (CN) 可以看出&#xff0c;CA和REQ的DN内容是一致的&#xff0c;依旧报错。其实是编码的问题。 使用以下…

[react] 请说说react中Portal是什么?

[react] 请说说react中Portal是什么&#xff1f; 核心API是ReactDOM.createPortal(ReactNode, DOMContainer)&#xff0c;返回值是一个ReactNode。返回的ReactNode需要在组件的render函数(函数式组件的返回值)中进行渲染&#xff0c;createPortal接受的ReactNode将会挂载到DOM…

在Windows下编译zlib1.2.5

zlib1.2.5下载地址 &#xff1a; http://www.winimage.com/zLibDll/zlib125.zip 下载后解压到&#xff1a;E:\software\OpenSource\zlib-1.2.5src 参考文章&#xff1a;http://demon.tw/software/compile-zlib-on-windows.html 编译方法总结如下&#xff1a; 方法一&#…

Solr学习总结(一)Solr介绍

最近一直在搞Solr的问题&#xff0c;研究Solr 的优化&#xff0c;搜索引擎的bug修改等&#xff0c;这几天终于有时间&#xff0c;闲下来总结分享&#xff0c;以便大家参考&#xff0c;与大家一起来共同学习。 Solr是一个基于Lucene的全文搜索引擎&#xff0c;同时对其进行了扩展…

SSL 多线程通信 linux openSSL C API编程

一、环境 需要提前准备好服务端和客户端的证书和私钥&#xff0c;以及CA的证书。 OpenSSL 1.1.1f 31 Mar 2020 built on: Wed Nov 24 13:20:48 2021 UTC platform: debian-amd64 options: bn(64,64) rc4(16x,int) des(int) blowfish(ptr) Thread model: posix gcc version …

分享一个CSS3和jQuery实现的模糊显示效果 - 帮助你的访问用户更好的阅读内容

为什么80%的码农都做不了架构师&#xff1f;>>> 日期&#xff1a;2011/12/20 来源&#xff1a;GBin1.com 在线演示 本地下载 这 个教程将实现一个页面部分内容突出显示效果&#xff0c; 大家可能经常见到一些页面组成内容比较多&#xff0c;可能会分散用户的…

[react] 说说你是怎么理解react的业务组件和技术组件的?

[react] 说说你是怎么理解react的业务组件和技术组件的&#xff1f; 业务组件即代码逻辑紧贴业务&#xff0c;如ajax请求&#xff0c;一些特定的需求特性等&#xff1b; 技术组件即使比较通用性的组件&#xff0c;如对loading的处理、ajax的hoc等 个人简介 我是歌谣&#xf…

查看静态库(.lib)和动态库(.dll)的导出函数的信息

From&#xff1a; http://blog.csdn.net/sunliangyuan/article/details/8075808 一般情况下&#xff0c;我们需要查看一个DLL或EXE中的包含的函数或是依赖的函数之类的信息&#xff0c;可以使用VS自带的工具dumpbin&#xff1b; 可以直接在命令行下输入dumpbin就可以查看他的…

Cracked me --1--Acid_burn

结合ida和od结合效果最好。 打开程序&#xff0c;首先是一个nag窗口&#xff08;去除nag&#xff09; 常用方法&#xff0c;一寻找字符串&#xff0c;发现和以往的 不同&#xff0c;不是对话框句柄的形式。只能第二种方法&#xff0c;单步找到对话框出现的位置。0042fd97-->…

QT 开发openSSL CSR证书请求工具

1、环境 QT 5.15.2 MinGW8.1.0 64Bit OpenSSL 1.1.1f 31 Mar 2020 built on: Wed Nov 24 13:20:48 2021 UTC platform: debian-amd64 options: bn(64,64) rc4(16x,int) des(int) blowfish(ptr) 本机的OpenSSL是随QT安装的。 2、QT使用openSSL 2.1 项目文件添加以下依赖 …

Twitter Storm 序列化

序列化这篇文章是关于序列化方法在storm 0.6.0版及之前版本中是如何工作的。0.6.0版之前&#xff0c;storm使用一种不同的序列化方法&#xff0c;参见 Serialization (prior to 0.6.0)。 元组可由任何一种类型的对象组成。由于storm是一个分布式系统&#xff0c;当对象在任务之…

VC 打开目录对话框

From: http://blog.sina.com.cn/s/blog_790bb7190100yxm7.html 对于文件选择对话框和目录选择对话框。在VC中打开文件选择对话框比较简单&#xff0c;使用CFileDialog就可以。打开目录选择对话框就稍微麻烦一些。需要使用API函数SHBrowseForFolder来实现。 该函数原型为: …