连接式指的是对数据的操作在 conn.Open() 与  conn.Close()之间;

断开式连接指的是 conn.Open()打开连接之后,先将数据放入adapter中,然后关闭连接(conn.Close()),接着利用adapter对数据进行操作。

连接式:

sqlConn.Open();

SqlDataReader dr=sqlComm.ExcuteReader();

while(dr.Read())

{

for (int i=0; i<dr.FieldCount; i++)

{

Console.Write(dr.GetValue(i).ToString()+" ");

}

Console.WriteLine();

}

dr.Close();

sqlConn.Close(); 断开式:

sqlConn.Open();

DataSet ds=new DataSet();

adapter.Fill(ds);

sqlConn.Close();

//处理数据在打开和关闭之后

for (int i=0; i<ds.Tables[0].Rows.Count; i++)

{

for (int j=0; j<ds.Tables[0].Columns.Count; j++

{

Console.Write(ds.Tables[0].Rows[i][j]+" ");

}

Console.WriteLine(); }
它们各有什么优点和缺点

断开式的主要优点就是:

一次连接取得数据之后,即可断开,在用户非常多的情况下,不会占用太多的连接池资源。

还有一点,就是一次性的从数据库中取得了数据之后,这些数据是存在内存中的,而不会再去操作数据库,所以你对

这些数据做任何的操作,都只是修改内存,不会改变数据库中的内容。缺点就是:刚才提到了,这种方式是把数据一

次性的读到内存中的,所以在数据量大的时候会非常消耗内存。

  非断开式的优点:

因为非断开式使用DataReader,每次只在内存中加载一条数据,所以占用的内存是很小的。由于

DataReader的特殊性和高性能,所以DataReader是只进的,你读了第一条后就不能再去读取第一条了。 缺点就是

:需要你去维护建立起来的这个数据库连接,所以如果用户访问量大时,有可能导致连接池异常。
												

sql中数据库连接与断开式连接有什么区别?的更多相关文章

  1. SQL中varchar和nvarchar的基本介绍及其区别

    SQL中varchar和nvarchar的基本介绍及其区别 varchar(n) 长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储 ...

  2. C#中SQL Server数据库连接池使用及连接字符串部分关键字使用说明

    (1) 数据库的连接使用后,必须采用close()连接等效的方法关闭连接.只有关闭后,连接才能进入连接池. 参见微软的使用连接池说明:https://msdn.microsoft.com/zh-cn/ ...

  3. SQL 中不同类型的表连接

    http://www.linuxidc.com/Linux/2012-08/68035.htm 1.简介 在关系型数据库中,join操作是将不同的表中的数据联合在一起时非常通用的一种做法.首先让我们看 ...

  4. SQL中查询现有未释放连接

    SELECT dbid,count() FROM [Master].[dbo].[SYSPROCESSES] WHERE spid> and status='sleeping' group by ...

  5. SQL学习笔记之SQL中INNER、LEFT、RIGHT JOIN的区别和用法详解

    0x00 建表准备 相信很多人在刚开始使用数据库的INNER JOIN.LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的例子通俗易懂的讲解这 ...

  6. sql 中 并集union和union all的使用区别

    union  操作符用于合并两个或多个 SELECT 语句的结果集,并且去除重复数据,按照数据库字段的顺序进行排序. 例 SELECT NAME FROM TABLE1UNIONSELECT EMP_ ...

  7. sql中别名加as和不加as的区别

    select UserName as 用户名,PassWord as 密码 from user 与 select UserName 用户名,PassWord 密码 from user 中as用于不用的 ...

  8. SQL中 count(*)和count(1)的对比,区别

    执行效果: 1.  count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和coun ...

  9. sql中的if()和ifnull() 的用法和区别

    if() 把salary表中的女改成男,男改成女: update salary set sex = if( sex = '男','女','男'); if(true,a,b),  if(false,a, ...

随机推荐

  1. python利用numpy存取文件

    NumPy提供了多种存取数组内容的文件操作函数.保存数组数据的文件可以是二进制格式或者文本格式.二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型. numpy格式的文件可以保存为后缀 ...

  2. 多重循环、缓冲区管理、数组(day06)

    无法预知的数字叫随机数 rand标准函数可以用来获得随机数 为了使用这个标准函数需要包含stdlib.h头文件 srand标准函数用来设置随机数种子 这个函数把一个整数作为种子使用 不同的种子产生的随 ...

  3. [luogu3231 HNOI2013] 消毒 (二分图最小点覆盖)

    传送门 Description 最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为abc,a.b.c 均为正整数.为了实验的方便,它被划分为abc ...

  4. PHP统计当前在线用户数实例

    HTML 我们在页面上放置一个显示当前在线人数的div#total以及一个用于展示访客地区分布的列表#onlinelist,默认我们在列表中放置一张与加载动画图片,后面我们用jQuery控制当鼠标滑向 ...

  5. 数位dp题集

    题集见大佬博客 不要62 入门题,检验刚才自己有没有看懂 注意一些细节. 的确挺套路的 #include<bits/stdc++.h> #define REP(i, a, b) for(r ...

  6. TCriticalSection(Delphi)

    临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别 临界区对象TCriticalSection(Delphi) 与 TRtlCritical ...

  7. 从命令行配置 Windows 防火墙

    从命令行配置 Windows 防火墙 高级用户可以使用命令行来配置 Windows 防火墙.您可以使用 netsh 命令行工具来进行配置. 下表中的 netsh 命令可用于 Microsoft Win ...

  8. js dom元素加载完成执行

    //dom ready执行 function ready(fn){ if(document.addEventListener){ document.addEventListener('DOMConte ...

  9. 0818基于360开源数据库流量审计MySQL Sniffer

    开源数据库流量审计MySQL Sniffer 我最推崇的数据库安全产品就是基于流量的数据库审计,因为它不需要更改网络结构,并且也是最关键的是,不影响数据库服务器性能,不用苦口婆心的劝数据库管理员安装监 ...

  10. [bzoj2938][Poi2000]病毒_AC自动机

    病毒 bzoj-2938 Poi-2000 题目大意:给你n个01串,问是否存在一个无限长的01串使得这个01的任意子串都不等于给出的01串. 注释:All_length<=30,000 想法: ...