成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析SqlConnection的dispose和close方法差異

開(kāi)發(fā) 后端
本文將簡(jiǎn)單談?wù)凷qlConnection的dispose和close方法差異和using的使用選擇,close和dispose的差異可能大家不是很了解,希望本文給大家一些啟示

引用微軟ADO.Team的經(jīng)理的話說(shuō),sqlconnection的close和dispose實(shí)際是做的同一件事,唯一的區(qū)別是Dispose方法清空了connectionString,即設(shè)置為了null.

  1. SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=northwind;User ID=sa;Password=steveg");  
  2.         con.Open();  
  3.         con.Close();  
  4.         con.Open();  
  5.         con.Dispose();  
  6.         con.Open(); 

上例運(yùn)行發(fā)現(xiàn),close掉的connection可以重新open,dispose的不行,因?yàn)閏onnectionstring清空了,會(huì)拋出InvalidOperationException提示The ConnectionString property has not been initialized,但請(qǐng)注意此時(shí)sqlconnection對(duì)象還在。

如果dispose后給connectionString重新賦值,則不會(huì)報(bào)錯(cuò)。

由此得出的結(jié)論是不管是dispose還是close都不會(huì)銷(xiāo)毀對(duì)象,即不會(huì)釋放內(nèi)存,它們會(huì)把sqlconnection對(duì)象丟到連接池中,那此對(duì)象什么時(shí)候銷(xiāo)毀呢?我覺(jué)得應(yīng)該是connection timeout設(shè)置的時(shí)間內(nèi),如果程序中沒(méi)有向連接池發(fā)出請(qǐng)求說(shuō)要connection對(duì)象,sqlconnection對(duì)象便會(huì)銷(xiāo)毀,這也是連接池存在的意義。

剛開(kāi)始以為dispose會(huì)釋放資源清空內(nèi)存,如果這樣的話,連接池不是每次都是要?jiǎng)?chuàng)建新對(duì)象,那何來(lái)重用connection呢?在網(wǎng)上看到很多人說(shuō)close比dispose好,我想真正的原因是dispose后的sqlconnection對(duì)象要重新初始化連接字符串而已,并不是象某些人說(shuō)的dispose會(huì)釋放對(duì)象。

所以在try..catch和using的選擇上大膽的使用using吧,真正的效率差異我想可能只有百萬(wàn)分之一秒吧(連接池重用該連接對(duì)象初始化連接字符串的時(shí)間),而且enterprise library中封裝的data access層全是用的using,從代碼的美觀和效率上綜合考慮,using好

補(bǔ)充:using不會(huì)捕捉其代碼快中的異常,只會(huì)***執(zhí)行dispose方法,相當(dāng)于finally{dispose},本文主要是想說(shuō)明dispose和close的差異,因?yàn)閡sing是絕對(duì)dispose的,可是如果人為的寫(xiě)try..finally有的人會(huì)選擇close有的人會(huì)選擇dispose,實(shí)際上在這2者的選擇上是有差異的。

【編輯推薦】

  1. 淺談ADO.NET中的五個(gè)主要對(duì)象
  2. 使用LINQ和ADO.NET創(chuàng)建Silverlight程序
  3. ADO.NET中容易混淆的概念
  4. ADO.NET實(shí)體框架引發(fā)爭(zhēng)論
  5. 挖掘ADO.NET Entity框架的性能
責(zé)任編輯:彭凡 來(lái)源: cnblogs
相關(guān)推薦

2009-09-07 09:36:29

C# DisposeDispose方法

2009-09-07 09:53:01

C# DisposeDispose方法

2009-08-31 16:33:28

C#調(diào)用Dispose

2009-12-21 16:04:45

WCF Dispose

2011-03-29 14:19:57

Oracle備份

2014-09-11 17:02:41

綜合布線

2009-08-21 10:28:21

C#異步方法C#同步方法

2009-09-11 10:59:06

Effective C調(diào)用Dispose()

2021-04-21 10:01:53

Python類(lèi)方法靜態(tài)方法

2010-11-16 08:48:45

SQL ServerOracle

2021-06-11 10:41:36

大數(shù)據(jù)安全數(shù)據(jù)保護(hù)數(shù)據(jù)安全

2022-10-27 16:01:41

AbilityStage模型FA模型

2019-07-10 10:00:42

PHPPython語(yǔ)法

2009-07-15 10:06:54

Swing實(shí)現(xiàn)MDI

2021-02-07 22:59:55

JavaScript編程方法鏈

2009-12-31 11:07:33

連接ADO.NET

2009-06-01 08:48:19

作用域變量作用域對(duì)象作用域

2010-04-22 09:52:28

Oracle監(jiān)聽(tīng)器

2009-09-17 08:47:00

Linq插入數(shù)據(jù)

2009-08-28 15:52:23

C#利用sharpzi
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一区二区三区欧美在线观看 | 成人免费视频在线观看 | 亚洲免费精品 | 97国产一区二区精品久久呦 | 欧美三级在线 | 中文字幕一区二区三区四区 | 在线观看免费av片 | 国产精品久久久久久久久免费相片 | 亚洲自拍偷拍视频 | 隔壁老王国产在线精品 | 不卡一区二区三区四区 | 国产精品免费观看 | 精品国产91亚洲一区二区三区www | 香蕉视频一区二区 | 久久久久久久久中文字幕 | 日韩精品一二三 | 人人人干| a在线视频 | 一区二区三区免费 | 日韩色在线 | av手机在线播放 | 毛片一区二区 | 国产人成精品一区二区三 | 精品中文视频 | 日本三级播放 | 亚洲欧美综合网 | 国产精品美女久久久久aⅴ国产馆 | 亚洲自拍一区在线观看 | 日本三级全黄三级三级三级口周 | 久操伊人 | 欧美精品在欧美一区二区 | wwwww在线观看 | 一区二区三区在线免费观看 | 日韩中文字幕久久 | 亚洲激情在线视频 | 成人网av| 久久久亚洲一区 | 美女视频三区 | 日韩在线播放中文字幕 | 男女视频在线观看网站 | 精品久久久久久 |