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

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

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

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

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

2.也可使用using语句块:

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

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

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

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

  1. python requests 异步调用_构建高效的python requests长连接池详解

    前文: 最近在搞全网的CDN刷新系统,在性能调优时遇到了requests长连接的一个问题,以前关注过长连接太多造成浪费的问题,但因为系统都是分布式扩展的,针对这种各别问题就懒得改动了. 现在开发的缓存 ...

  2. java基础实现水果超市系统(数组+集合+对象持久化(io流存储到txt文件))

    java基础实现水果超市系统(数组+集合+对象持久化(io流存储到txt文件)) Fruit类 package com.zr.fruitSupermarket;/*** 水果* @author ZR* ...

  3. 大数据笔记16—java基础篇12(JDBC 、连接池、事务)

    目录 JDBC jdbc概述 jdbc入门案例 API详解 jdbc工具类 预编译执行平台 1.SQL注入问题(安全问题) 2API详解:预处理对象(PreparedStatement) 使用连接池重 ...

  4. Java基础语法(七)——类和对象

    文章目录 Java基础语法(七)--类和对象 一.类和对象的初步认识 二. 类和类的实例化 1.类的定义 2.实例化对象 3.如何使用类中的数据 三. 类的成员 1. 字段/属性/成员变量 (1)实例 ...

  5. R语言常用基础函数:length函数查看数据对象的长度、str函数查看数据对象的结构、class函数查看数据对象的类型、names函数查看数据对象的名称

    R语言常用基础函数:length函数查看数据对象的长度.str函数查看数据对象的结构.class函数查看数据对象的类型.names函数查看数据对象的名称 目录

  6. webgl值得重视的基础构建

    此篇文章的主要目的是巩固自己对于创建webgl的时候一些知识点,主要参考了<webgl编程指南>以及_Hahn_的webgl环境搭建这篇文章,在此附上链接,方便大家查看( juejin.i ...

  7. 【Java基础】二、大厂都开始重视的基础很重要吗?快来加入基础的学习,巩固一下细枝末角,刷刷面试题吧

    2_变量.标识符.保留字.变量 一.关键字与保留字 1.关键字(keyword)的定义和特点 2.保留字(reserved word) 二.标识符 1.什么是标识符(Identifier) 2.定义合 ...

  8. Java基础(三)IO流和对象流

    文件及IO流 File类 1.来自于java.io包 2.是文件和目录路径名的抽象表示 3.文件和目录可以通过File封装为对象 4.对于File而言,封装的不是真正存在的文件,仅仅是封装一个路径,路 ...

  9. 【Python基础】本地利用ssh远程连接服务器并启用远程服务器的jupyter lab并配置好anaconda的环境...

    前提条件 服务端安装好anaconda,并建立要用的虚拟环境 详情可见我的另外一篇文章 [手把手AI项目]三.利用Anaconda配置tensorflow-gpu环境(linux+windows) 假 ...

最新文章

  1. 查看cananl是否启动_振动筛无法启动的3大原因及8大注意事项
  2. Sales area data model research in QDD
  3. Vue - 去除控制台“你正在开发模式下运行Vue”的警告
  4. 严格单调递增与非严格之间的转换
  5. 一分钟了解阿里云产品:网络安全专家服务
  6. 社会工程学之《反欺骗的艺术》的思考
  7. 使用IDEA格式化JSON数据串
  8. 百度深度学习初级认证——已过
  9. numpy手写NLP模型(四)———— RNN
  10. 【转】如何用中控系统建造震撼的家庭影院
  11. java整钱兑零美元换算成美分,人民币和美元大写格式在线工具,美元美金数字金额转换大写,外币大写金额...
  12. 函数柯里化curry 与合成函数 compose
  13. Poisson 分布
  14. java获取当天开始,结束时间
  15. 二、CRUD操作以及配置解析
  16. [元带你学NVMe协议] ] 插槽接口(M.2 / mSATA / SATA )、总线(PCIE / SATA )、传输协议(NVME / AHCI) 图解
  17. 微信公众号前后端分离授权登录
  18. 查看表空间已使用和剩余空间大小
  19. Css_display: block inline inline-bock区别
  20. Spark学习-入门介绍

热门文章

  1. golang实现聊天室(二)
  2. TCP第四次挥手为什么要等待2MSL
  3. shared_ptr的一些尴尬
  4. 软考安全工程师历年真题汇总
  5. nginx源码阅读(二).初始化:main函数及ngx_init_cycle函数
  6. Array | 867. Transpose Matrix
  7. Linux本地yum源配置以及使用yum源安装各种应用程序
  8. P8级别的顶级“并发编程”宝典,最全指南
  9. Android工程开发笔记一
  10. VerifyRenderingInServerForm 和EnableEventValidation引发的两个问题