建立ADO.NET SQL語句檢索說明
下面用實例進行介紹說明,ADO.NET SQL給了我們機會使我們可以將我們自己的功能提供給Windows開發人員把多條命令合并成單一命令,能減少到服務器的行程數,并提高應用程序的性能。
然后再發出一條批處理命令調用,從數據源刪除它們。雖然這樣做確實能提高性能,但是,當對 DataSet 中的數據更新進行管理時,可能會增加應用程序的復雜性。要保持簡單,可能要在 DataSet 中為每個 DataTable 創建一個 DataAdapter。#t#
用多個表填充 DataSet
如果使用批處理ADO.NET SQL語句檢索多個表并填充 DataSet,***個表用指定給 Fill 方法的表名命名。后面的表用指定給 Fill 方法的表名加上一個從 1 開始并且增量為 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");
ADO.NET SQL放在名為 "Customers" 的 DataTable 中。來自 Orders 表的數據放在名為 "Customers1" 的 DataTable 中。填充完 DataSet 之后,可以很容易地把 "Customers1" 表的 TableName 屬性改為 "Orders"。但是,后面的填充會導致 "Customers" 表被重新填充,而 "Orders" 表會被忽略,并創建另外一個 "Customers1" 表。為了對這種情況作出補救,創建一個 DataTableMapping,把 "Customers1" 映射到 "Orders",并為其他后面的表創建其他的表映射。例如:
- 'Visual Basic Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;",
- myConnection) da.TableMappings.Add("Customers1", "Orders") Dim ds As DataSet = New DataSet() da.Fill(ds, "Customers")
- //C# SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection);
- da.TableMappings.Add("Customers1", "Orders"); DataSet ds = new DataSet(); da.Fill(ds, "Customers");