ADO.NET类文件有很多值得学习的地方,这里我们主要介绍ADO.NET类文件,在向大家详细介绍ADO.NET类文件之前,首先让大家了解下ADO.NET类文件,对于ADO.NET类文件的使用。
当停止使用Connection或者DataReader对象时,明确地关闭它们。尽管无用单元收集程序最终会清除这些对象,并释放连接和其它可管理资源,但是无用单元收集只在必要时才发生。因此确保昂贵的资源明确地被释放仍然是你的职责。此外,ADO.NET类文件连接如果没有被明确的释放将使它不会返回连接池。例如,如果连接池到达了最大值并且一个连接还有效,该超出范围并且没有被明确关闭的连接才返回到连接池。
注意不要在类的Finalize方法中调用Connection、DataReader、或者其它可管理对象的Close或者Dispose方法。ADO.NET类文件在该方法中只释放类直接拥有的不可管理资源。如果类中没有任何不可管理资源,在类定义中不要包含Finalize方法。 #t#
在C#中使用"Using"语句
对C#程序员来说,确保经常关闭Connection和DataReader对象的一个简便方法是使用using语句。ADO.NET类文件会自动调用留在Using语句范围内的被使用的对象上的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属性集调用IDBProperties.GetProperties来获取DBPROP_CONNECTIONSTATUS属性,这可能引起重新返回数据源。换句话说,检查State属性可能花费很大。ADO.NET类文件因此只在必要时才检查State属性。如果你需要经常检查该属性,你监听OleDbConnection的StateChange事件会使应用程序的性能更好。
与XML集成
ADO.NET在数据集中提供了广泛的XML集成,并且暴露了一些SQL Server 2000及以上版本所提供的XML功能。你能使用SQLXML 3.0来访问SQL Server 2000及以上版本所提供的XML功能。下面是使用XML和ADO.NET类文件的一些技巧和信息。