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

淺析SqlConnection的dispose和close方法差異

開發 后端
本文將簡單談談SqlConnection的dispose和close方法差異和using的使用選擇,close和dispose的差異可能大家不是很了解,希望本文給大家一些啟示

引用微軟ADO.Team的經理的話說,sqlconnection的close和dispose實際是做的同一件事,唯一的區別是Dispose方法清空了connectionString,即設置為了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(); 

上例運行發現,close掉的connection可以重新open,dispose的不行,因為connectionstring清空了,會拋出InvalidOperationException提示The ConnectionString property has not been initialized,但請注意此時sqlconnection對象還在。

如果dispose后給connectionString重新賦值,則不會報錯。

由此得出的結論是不管是dispose還是close都不會銷毀對象,即不會釋放內存,它們會把sqlconnection對象丟到連接池中,那此對象什么時候銷毀呢?我覺得應該是connection timeout設置的時間內,如果程序中沒有向連接池發出請求說要connection對象,sqlconnection對象便會銷毀,這也是連接池存在的意義。

剛開始以為dispose會釋放資源清空內存,如果這樣的話,連接池不是每次都是要創建新對象,那何來重用connection呢?在網上看到很多人說close比dispose好,我想真正的原因是dispose后的sqlconnection對象要重新初始化連接字符串而已,并不是象某些人說的dispose會釋放對象。

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

補充:using不會捕捉其代碼快中的異常,只會***執行dispose方法,相當于finally{dispose},本文主要是想說明dispose和close的差異,因為using是絕對dispose的,可是如果人為的寫try..finally有的人會選擇close有的人會選擇dispose,實際上在這2者的選擇上是有差異的。

【編輯推薦】

  1. 淺談ADO.NET中的五個主要對象
  2. 使用LINQ和ADO.NET創建Silverlight程序
  3. ADO.NET中容易混淆的概念
  4. ADO.NET實體框架引發爭論
  5. 挖掘ADO.NET Entity框架的性能
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-09-07 09:36:29

C# DisposeDispose方法

2009-09-07 09:53:01

C# DisposeDispose方法

2009-08-31 16:33:28

C#調用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調用Dispose()

2021-04-21 10:01:53

Python類方法靜態方法

2010-11-16 08:48:45

SQL ServerOracle

2021-06-11 10:41:36

大數據安全數據保護數據安全

2022-10-27 16:01:41

AbilityStage模型FA模型

2009-07-15 10:06:54

Swing實現MDI

2021-02-07 22:59:55

JavaScript編程方法鏈

2019-07-10 10:00:42

PHPPython語法

2009-12-31 11:07:33

連接ADO.NET

2009-06-01 08:48:19

作用域變量作用域對象作用域

2009-09-28 10:35:45

Silverlight

2010-06-12 14:59:34

IBM工作負載

2009-07-03 13:22:37

調用Servlet
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品无人区 | 毛片网站在线观看视频 | 最新国产精品视频 | 黄色大片在线播放 | 久久精品色欧美aⅴ一区二区 | 99热.com| 99国内精品 | 亚洲精品在线免费观看视频 | 狠狠色狠狠色综合系列 | 久久久不卡网国产精品一区 | 一区二区国产精品 | 黄色一级大片在线免费看产 | 欧美日韩亚洲国产综合 | 日韩欧美国产一区二区三区 | 精品福利视频一区二区三区 | 久草新在线 | 亚洲婷婷一区 | 毛片一区| 中文字幕精品一区二区三区精品 | 国产一区二区在线看 | 在线中文字幕日韩 | 天堂久久网 | 久久久久久精 | 一区二区免费在线 | 日韩精品av | 亚洲国产精品网站 | 羞羞在线观看视频 | 日韩在线免费播放 | 久久久欧洲 | 91免费在线看 | 99精品久久 | 色婷婷九月 | 在线日韩中文字幕 | 欧美天堂 | 国产成人高清成人av片在线看 | 欧美久久精品一级黑人c片 91免费在线视频 | 国产精品精品视频一区二区三区 | 国产午夜影院 | 91精品国产一区二区在线观看 | 男人天堂av网站 | 国产午夜精品一区二区三区四区 |