您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何使用DataAdapter優(yōu)化ADO.NET連接池”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何使用DataAdapter優(yōu)化ADO.NET連接池”這篇文章吧。
用于ODBC的SQL Server、OLE DB和.NET框架數(shù)據(jù)提供程序隱式緩沖連接。通過在連接字符串中指定不同的屬性值,可以控制ADO.NET連接池的行為。
DataAdapter 的Fill和Update方法在連接關(guān)閉的情況下自動打開為相關(guān)命令屬性指定的連接。如果Fill或Update方法打開了連接,F(xiàn)ill或Update 將在操作完成的時候關(guān)閉它。為了獲得***性能,僅在需要時將與數(shù)據(jù)庫的連接保持為打開。同時,減少打開和關(guān)閉多操作連接的次數(shù)。如果只執(zhí)行單個的Fill或Update方法調(diào)用,建議允許Fill或Update方法隱式打開和關(guān)閉連接。如果對Fill和Update調(diào)用有很多,建議顯式打開連接,調(diào)用Fill和Update,然后顯式關(guān)閉連接。另外,當(dāng)執(zhí)行事務(wù)時,顯式地在開始事務(wù)之前打開連接,并在提交之后關(guān)閉連接。例如:
'Visual Basic Public Sub RunSqlTransaction(da As SqlDataAdapter, myConnection As SqlConnection, ds As DataSet) myConnection.Open() Dim myTrans As SqlTransaction = myConnection.BeginTransaction() myCommand.Transaction = myTrans Try da.Update(ds) myTrans.Commit() Console.WriteLine("Update successful.") Catch e As Exception Try myTrans.Rollback() Catch ex As SqlException If Not myTrans.Connection Is Nothing Then Console.WriteLine("An exception of type " & ex.GetType().ToString() & " was encountered while attempting to roll back the transaction.") End If End Try Console.WriteLine("An exception of type " & e.GetType().ToString() & " was encountered.") Console.WriteLine("Update failed.") End Try myConnection.Close() End Sub //C# public void RunSqlTransaction(SqlDataAdapter da, SqlConnection myConnection, DataSet ds) { myConnection.Open(); SqlTransaction myTrans = myConnection.BeginTransaction(); myCommand.Transaction = myTrans; try { da.Update(ds); myCommand.Transaction.Commit(); Console.WriteLine("Update successful."); } catch(Exception e) { try { myTrans.Rollback(); } catch (SqlException ex) { if (myTrans.Connection != null) { Console.WriteLine("An exception of type " + ex.GetType() +" was encountered while attempting to roll back the transaction."); } } Console.WriteLine(e.ToString()); Console.WriteLine("Update failed."); } myConnection.Close();
以上是“如何使用DataAdapter優(yōu)化ADO.NET連接池”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。