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