幾分鐘教會您ADO.NET處理技巧
ADO.NET處理還是比較常用的,于是我研究了一下ADO.NET處理,在這里拿出來和大家分享一下,希望對大家有用,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
命令構造器的使用應該限制在設計時或者ad-hoc情況下。需要的生成數(shù)據(jù)適配器命令屬性的過程妨礙了性能。如果你預先知道INSERT/UPDATE/DELETE語句的內(nèi)容,應該顯式地設置它們。好的設計技巧是為INSERT/UPDATE/DELETE命令建立存儲過程并明確地配置數(shù)據(jù)適配器命令屬性來使用它們。
命令構造器使用數(shù)據(jù)適配器的SelectCommand屬性來決定其它命令屬性的值。如果ADO.NET處理數(shù)據(jù)適配器的SelectCommand自身改變了,一定要調(diào)用RefreshSchema來更新命令屬性。
如果命令屬性是空的(默認情況下命令屬性是空的),命令構造器只為數(shù)據(jù)適配器命令屬性生成一個命令。如果你明確地設置一個命令屬性,命令構造器不會覆蓋它。如果你希望命令構造器為一個已經(jīng)設置了的命令屬性生成一個命令,要把命令屬性設置為空。 #t#
批處理ADO.NET處理語句
很多數(shù)據(jù)庫支持在一個命令執(zhí)行中組合、批處理多個命令執(zhí)行。例如,SQL Server允許你使用分號分隔命令。把多個命令組合成為一個減少了對服務器的訪問次數(shù),可以提高應用程序的性能。例如,你能在本地應用程序中存儲所有的刪除,并在數(shù)據(jù)源發(fā)布一個批處理命令調(diào)用來刪除它們。
盡管它提高了性能,但是也增加了應用程序管理數(shù)據(jù)集里面數(shù)據(jù)更新的復雜性。ADO.NET處理為了保持簡單性,你也許會為數(shù)據(jù)集中的每個數(shù)據(jù)表建立一個數(shù)據(jù)適配器。
使用多個表填充數(shù)據(jù)集
如果使用批處理ADO.NET處理語句檢索多個表并填充一個數(shù)據(jù)集,***張表的名字使用Fill方法指定的表名,后面的表的名字是Fill方法指定的名字加上一個數(shù)字,從1開始逐漸增加。例如,如果運行下面的代碼:
- 'Visual Basic
- Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Customers;
- SELECT * FROM Orders;", myConnection)
- Dim ds As DataSet = New DataSet()
- da.Fill(ds, "Customers")
- C#
- SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers;
- SELECT * FROM Orders;", myConnection);
- DataSet ds = new DataSet();
- da.Fill(ds, "Customers");