返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >.Net连接数据库的方式详解
  • 604
分享到

.Net连接数据库的方式详解

2024-04-02 19:04:59 604人浏览 八月长安
摘要

一、C#中连接字符串常用内容 参数说明Provider设置或者返回提供的连接程式的名称,仅用于OLeDbConnection对象Connection Timeout在终止尝试并产生异

一、C#中连接字符串常用内容

参数说明
Provider设置或者返回提供的连接程式的名称,仅用于OLeDbConnection对象
Connection Timeout在终止尝试并产生异常前,等待连接到服务器的连接时间长度(以秒为单位)。默认值是15秒
Initial Catalog或Database连接的数据库名称
Data Source或Server连接打开时使用的SQL Server服务签名,或者Access数据库文件名(localhost或127.0.0.1)
PassWord或pwdsql Server登录密码
User ID或uidSql Server登录账户
Integrated Sercuity决定连接是否是安全连接,可能的值有True,False和SSPI(SSPI和True是同义词)

以上的参数是不分大小写的,例如uid,UID,Uid都表示连接的数据库用户

Integrated Security参数用于本地windows验证登录时,其值应该设置为True,例如("server=localhost;database=mydb;Integrated security=true")

二、.net 数据库连接池超时问题

(1)数据库Connection Pool 连接池是什么

每当程序需要读写数据库的时候。Connection.Open()会使用ConnectionString连接到数据库,数据库会为程序建立 一个连接,并且保持打开状态,此后程序就可以使用T-SQL语句来查询/更新数据库。当执行到Connection.Close()后,数据库就会关闭当 前的连接。

但是如果我的程序需要不定时的打开和关闭连接,(比如说 asp.net 或是 WEB Service ),例如当Http Request发送到服务器的时候、,我们需要打开Connection 然后使用Select* from Table 返回一个DataTable/DataSet给客户端/浏览器,然后关闭当前的Connection。那每次都Open/Close Connection 如此的频繁操作对于整个系统无疑就成了一种浪费。

ADO.Net Team就给出了一个比较好地解决方法。将先前的Connection保存起来,当下一次需要打开连接的时候就将先前的Connection 交给下一个连接。这就是Connection Pool。

(2)数据库Connection Pool连接池的运行方式

  • 1、当一个程序执行Connection.open()时候,ADO.net就需要判断,此连接是否支持Connection Pool (Pooling 默认为True)

​ (1)、如果指定为False, ADO.net就与数据库之间创建一个连接,然后返回给程序。

​ (2)、如果指定为 True,ADO.net就会根据ConnectString创建一个Connection Pool,然后向Connection Pool中填充Connection。填充多少个Connection由Min Pool Size (默认为0)属性来决定。例如如果指定为5,则ADO.net会一次与SQL数据库之间打开5个连接,然后将4个Connection,保存在 Connection Pool中,1个Connection返回给程序。

  • 2、当程序执行到Connection.close() 的时候。如果Pooling 为True,ADO.net 就把当前的Connection放到Connection Pool并且保持与数据库之间的连接。

同时还会判断Connection Lifetime(默认为0)属性,0代表无限大,如果Connection存在的时间超过了Connection LifeTime,ADO.net就会关闭的Connection同时断开与数据库的连接,而不是重新保存到Connection Pool中。

  • 3、当下一次Connection.Open() 执行的时候,ADO.Net就会判断新的ConnectionString与之前保存在Connection Pool中的Connection的connectionString是否一致。
  • 4、 ADO.net需要判断当前的Connection Pool中是否有可以使用的Connection(没有被其他程序所占用),如果没有的话,ADO.net就需要判断ConnectionString设 置的Max Pool Size (默认为100)

​ (1)、如果Connection Pool中的所有Connection没有达到Max Pool Size,ADO.net则会再次连接数据库,创建一个连接,然后将Connection返回给程序。

​ (2)、如果已经达到了 MaxPoolSize,ADO.net就不会再次创建任何新的连接,而是等待Connection Pool中被其他程序所占用的Connection释放,这个等待时间受SqlConnection.ConnectionTimeout(默认是15 秒)限制,也就是说如果时间超过了15秒,SqlConnection就会抛出超时错误。

  • 5、如果有可用的Connection,从Connection Pool 取出的Connection也不是直接就返回给程序,ADO.net还需要检查ConnectionString的ConnectionReset属性 (默认为True)是否需要对Connection 最一次reset。

(3)ASP.NET程序对max pool size的配置

在连接字符串中添加如下内容:

pooling=true;min pool size=5;max pool size=512;

其中Max Pool Size如果未设置则默认为100,理论最大值为32767。最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。在等待队列中,默认等待与服务器的连接的时间为15秒。

默认连接池大小一般是100。

(4)查看应用程序池占用数量

select * from sysprocesses where dbid= db_id('数据库名')

查询出来有几条数据就证明有几个连接数量。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: .Net连接数据库的方式详解

本文链接: https://lsjlt.com/news/147827.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • .Net连接数据库的方式详解
    一、C#中连接字符串常用内容 参数说明Provider设置或者返回提供的连接程式的名称,仅用于OLeDbConnection对象Connection Timeout在终止尝试并产生异...
    99+
    2024-04-02
  • 详解.NET数据库连接池
    目录前置知识背景1. .NET数据库连接池的背景2. .NET 数据库连接池的表现3. .NET是如何形成数据库连接池的?4. 连接池中的连接什么时候被移除?.NET 如何清...
    99+
    2024-04-02
  • .Net连接数据库的方式是什么
    这篇文章主要讲解了“.Net连接数据库的方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.Net连接数据库的方式是什么”吧!一、C#中连接字符串常用内容参数说明Provider设置或...
    99+
    2023-06-30
  • Oracle数据库连接方式详解
    Oracle数据库连接方式详解 在应用程序开发中,数据库连接是一个非常重要的环节,它承载着应用程序与数据库之间的数据交互。Oracle数据库是一款功能强大、性能稳定的关系型数据库管理系...
    99+
    2024-03-08
    数据库 oracle 连接 spring框架
  • .net连接mysql数据库的方法
    小编给大家分享一下.net连接mysql数据库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!net连接mysql数据库的方...
    99+
    2024-04-02
  • 一文详解PHP连接MySQL数据库的三种方式
    目录1.MySQL扩展2.mysqli扩展3.PDO扩展知识点补充PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对...
    99+
    2024-04-02
  • Navicat进行SSH加密方式连接MySQL数据库详解
    前言 近年来网络安全形式日趋严峻,为保障企业信息安全和业务连续性,越来越多的要求业务系统上线前需要满足等保要求。其中数据库作为存储数据的载体,安全更是重中之重。部分等保要求,mysql数据库不能通过直连方式连接,需使用SSH加密方式连接,...
    99+
    2023-09-18
    mysql等保 ssh连接mysql mysql 数据库安全 数据库安全连接 Powered by 金山文档
  • 详解Java数据库连接池
    目录一、什么是数据库连接池二、为什么需要连接池,好处是什么?三、都有哪些连接池方案四、连接池需要关注的参数五、怎么创建连接池,show me the code5.1 pom.xml ...
    99+
    2024-04-02
  • 详解JDBC的概念及获取数据库连接的5种方式
    目录一、JDBC概念二、JDBC获取数据库连接的5种方式方式一方式二方式三方式四方式五一、JDBC概念 Java DataBase Connectivity(Java数据库连接技术)...
    99+
    2024-04-02
  • 阿里云MySQL数据库的连接方法详解
    在阿里云上使用MySQL数据库时,我们需要了解如何连接数据库。本文将详细介绍阿里云MySQL数据库的连接方法。 一、准备工作首先,我们需要了解一些基本的概念。MySQL是一种关系型数据库管理系统,它可以存储和管理大量的结构化数据。阿里云提供...
    99+
    2023-11-18
    阿里 详解 数据库
  • 数据库连接方式有哪些
    小编给大家分享一下数据库连接方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在建立Oracle数据库的时候,应该会在数据...
    99+
    2024-04-02
  • PowerDesigner连接数据库的实例详解
    PowerDesigner连接数据库的实例详解PowerDesigner连接数据库 大致如下列图所示:选择需要连接的数据库类型:有两个选择,一、导入Sql脚本文件;二、连接数据源选择连接数据源:在弹出的对话框中选择相应的连接类型;方式有很多...
    99+
    2023-05-31
    powerdesigner 数据库 ne
  • 使用python连接mysql数据库数据方式
    目录1.fetchone/fetchmany/fetchall2.pandas.read_sql()前言: 使用python连接mysql数据库数据 有以下两种读取数据的方式推荐: ...
    99+
    2024-04-02
  • MySQL连接数据库的方式有哪些
    MySQL连接数据库的方式有以下几种:1. 使用命令行连接:在命令行窗口中使用mysql命令连接数据库,例如:mysql -h 主机...
    99+
    2023-09-09
    MySQL 数据库
  • Oracle数据库连接方式的优缺点
    Oracle数据库连接方式的优缺点 在进行Oracle数据库开发和管理中,数据库连接是至关重要的一环。不同的连接方式有各自的优点和缺点,合理选择适合的连接方式能够提高系统性能和稳定性。...
    99+
    2024-03-07
    优点: 连接方式: 缺点: sql语句
  • 数据库连接池druid参数详解
    spring: datasource: druid: # 指定数据源类型为DruidDataSource type: com.alibaba.druid.pool.DruidDataSource # 数...
    99+
    2023-09-02
    数据库 java mybatis
  • django连接Mysql中已有数据库的方法详解
    我的Mysql中已经有了项目需要使用的相关数据库,现在需要通过django来获取Mysql里的数据并使用,下面记录配置django与mysql的连接过程。 (此处默认您已经建好了dj...
    99+
    2024-04-02
  • 详解springboot 使用c3p0数据库连接池的方法
    使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了。所以使用c3p0连接池吧。引入的maven依赖:<dependency> <groupId>...
    99+
    2023-05-31
    spring boot c3p0
  • Java数据库连接PreparedStatement的使用详解
    本文介绍了Java数据库连接PreparedStatement的使用详解,分享给大家,具体如下:首先了解Statement和PreparedStatement的区别:由此可见,一般使用PreparedStatement。操作数据库SU(Co...
    99+
    2023-05-31
    java preparedstatement ava
  • 详解Flask数据库的连接与使用
    目录数据库连接配置创建实体类配置打印SQL语句或、与、非和排序数据库连接配置 HOST = "XXXXXXXXXXXXX" PORT = 3310 USERNAME = "root"...
    99+
    2023-02-24
    Flask数据库连接 Flask数据库使用 Flask数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作