溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

不被重視的基礎,高效地使用ADO.net連接對象

發(fā)布時間:2020-06-13 04:24:18 來源:網(wǎng)絡 閱讀:1610 作者:劍了 欄目:編程語言

很多初學者朋友在做項目時遇到過這樣的問題,那就是在本地調(diào)試運行的程序正常,放到服務器上也是正常的,但是如果有了一些并發(fā)之后,就會發(fā)現(xiàn)頁面會出現(xiàn)打不開的現(xiàn)像,其實大多數(shù)時候是因為Ado.net鏈接沒有處理完善。當然對于老鳥來說這種情況是不會發(fā)生的。

其實避免出現(xiàn)這種情況和提高Connection對象的使用性能的方式很簡單,我們這里列出兩種方式供初學者或遇到過這種問題的朋友選擇:

1.使用try-catch-finally語句塊:

  1. SqlConnection conn = new SqlConnection("鏈接字符串"); 
  2. try 
  3.     conn.Open();//打開數(shù)據(jù)庫鏈接 
  4.      
  5.     //添寫針對鏈接對象所做的一些操作 
  6. catch (SqlException err) 
  7.     //這里可以將錯誤信息寫入日志 
  8. finally 
  9.     conn.Close();//在完成conn對象的操作后需要關閉鏈接 

    這么做的原因是,雖然.NET框架中有垃圾回收機制,但是我們?yōu)榱四艽_保資源的有效利用,所以需要盡早的釋放到資源,以保證其能被有效的利用起來。同時,我們也不建議大家直接在操作完成后使用conn.Close()方法,因為這樣的話,如果在本次操作出現(xiàn)錯誤后,conn將不再繼續(xù)往下執(zhí)行,那么意味著鏈接就不會關閉,其結果是你第二次操作時,將來提示鏈接沒有被關閉。

2.也可使用using語句塊:

  1. using (SqlConnection conn = new SqlConnection("鏈接字符串")) 
  2.     conn.Open(); 
  3.     //添寫針對鏈接對象所做的一些操作 

    有興趣的朋友,可以去研究一下using關健字在C#中的各種用法,那么在這里using所起到的作用是不論如何退出語句塊,都會釋放到conn對象的資源。

    當然,我的建議是大家可以結合起來使用,因為using對象可以確保資源的釋放,而try語句塊可以讓我們抓取異常,并且寫到Log中。

 

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI