詳細(xì)說明ADO.NET類文件語句
ADO.NET類文件有很多值得學(xué)習(xí)的地方,這里我們主要介紹ADO.NET類文件,在向大家詳細(xì)介紹ADO.NET類文件之前,首先讓大家了解下ADO.NET類文件,對于ADO.NET類文件的使用。
當(dāng)停止使用Connection或者DataReader對象時,明確地關(guān)閉它們。盡管無用單元收集程序最終會清除這些對象,并釋放連接和其它可管理資源,但是無用單元收集只在必要時才發(fā)生。因此確保昂貴的資源明確地被釋放仍然是你的職責(zé)。此外,ADO.NET類文件連接如果沒有被明確的釋放將使它不會返回連接池。例如,如果連接池到達(dá)了最大值并且一個連接還有效,該超出范圍并且沒有被明確關(guān)閉的連接才返回到連接池。
注意不要在類的Finalize方法中調(diào)用Connection、DataReader、或者其它可管理對象的Close或者Dispose方法。ADO.NET類文件在該方法中只釋放類直接擁有的不可管理資源。如果類中沒有任何不可管理資源,在類定義中不要包含F(xiàn)inalize方法。 #t#
在C#中使用"Using"語句
對C#程序員來說,確保經(jīng)常關(guān)閉Connection和DataReader對象的一個簡便方法是使用using語句。ADO.NET類文件會自動調(diào)用留在Using語句范圍內(nèi)的被使用的對象上的Dispose,如下所示:
- string connString = "Data Source=localhost;
- Integrated Security=SSPI;Initial Catalog=Northwind;";
- using (SqlConnection conn = new SqlConnection(connString))
- {
- SqlCommand cmd = conn.CreateCommand();
- cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers";
- conn.Open();
- using (SqlDataReader dr = cmd.ExecuteReader())
- {
- while (dr.Read())
- Console.WriteLine("{0}\t{1}", dr.GetString(0), dr.GetString(1));
- }
- }
如果連接打開了,OleDbConnection.State使本地OLE DB向DATASOURCEINFO屬性集調(diào)用IDBProperties.GetProperties來獲取DBPROP_CONNECTIONSTATUS屬性,這可能引起重新返回數(shù)據(jù)源。換句話說,檢查State屬性可能花費很大。ADO.NET類文件因此只在必要時才檢查State屬性。如果你需要經(jīng)常檢查該屬性,你監(jiān)聽OleDbConnection的StateChange事件會使應(yīng)用程序的性能更好。
與XML集成
ADO.NET在數(shù)據(jù)集中提供了廣泛的XML集成,并且暴露了一些SQL Server 2000及以上版本所提供的XML功能。你能使用SQLXML 3.0來訪問SQL Server 2000及以上版本所提供的XML功能。下面是使用XML和ADO.NET類文件的一些技巧和信息。