【正文】
。在Web這個程式里,它不僅不會自動關(guān)閉數(shù)據(jù)庫連接,象這樣的函數(shù)還會每次調(diào)用,都會重新用掉一個數(shù)據(jù)庫連接。 如果象這樣的函數(shù)很多的話,你就等著一個錯誤警告頁面彈出來,如Database Connection Timeout….等訊息。這還不算什么,更有甚者,盡然在循環(huán)語句里寫下面的代碼如 :[Sample02]Foreach(DataRow row in (“”,”ProductID”)……………(strConn)………….Next 有人還喜歡玩下面的語句:[Sample03]Foreach(DataRow row in (“”,”ProductID”)Foreach(DataColumn col in )……………(strConn)Next ………….Next 說到這,有人就問啦,我在開發(fā)環(huán)境下測試一點問題都沒有呀?是呀,你是沒有問題,我想問的是,你開發(fā)環(huán)境的測試數(shù)據(jù)有幾筆?現(xiàn)在,問題已經(jīng)知道在哪里,怎么解決? 針對[sample01]做如下處理,注意下面代碼:Public Shared Function getOEMPN(ByVal psPN As String, ByRef OEMPN As String) As BSResult0001 Dim clsResult As New BSResult0002 Try0003 = 10004 Dim dtResult As New DataTable0005 Dim Sql As String = 0006 Dim clsOraDb As New clsOraClienDb0007 Dim strConn As String = (ConnectionString).ConnectionString0008 (strConn) 注釋:這里Open后,后面看不到 0009 Sql = SELECT FRUNO FROM SATBMMBRND WHERE = :MATNO0010 Dim params() As OracleParameter = {New OracleParameter(MATNO, psPN)}0011 If (Sql, dtResult, params) = False Then0012 Return clsResult0013 End If0014 If dtResult Is Nothing Then0015 Return clsResult0016 End If0017 If 0 Then0018 OEMPN = (0)(FRUNO).ToString()0019 Else0020 OEMPN = 0021 End If0022 = 10088 注釋:后面看到 0023 Return clsResult0024 Catch ex As Exception0099 注釋:程序異常也看到 0025 = 10026 Return clsResult0028 Throw ex0027 End TryEnd Function注意上面的兩句代碼:0088行和0099行。在異常處理的時候,特別提醒兩點:一, 你的數(shù)據(jù)庫關(guān)閉的時候應(yīng)該是在代碼行0028前,而不是后。 二, 有人不習(xí)慣(或者一時疏忽)加上0088行的代碼。 針對[Sampl