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

















