建立ADO.NET SQL語句檢索說明
下面用實(shí)例進(jìn)行介紹說明,ADO.NET SQL給了我們機(jī)會(huì)使我們可以將我們自己的功能提供給Windows開發(fā)人員把多條命令合并成單一命令,能減少到服務(wù)器的行程數(shù),并提高應(yīng)用程序的性能。
然后再發(fā)出一條批處理命令調(diào)用,從數(shù)據(jù)源刪除它們。雖然這樣做確實(shí)能提高性能,但是,當(dāng)對(duì) DataSet 中的數(shù)據(jù)更新進(jìn)行管理時(shí),可能會(huì)增加應(yīng)用程序的復(fù)雜性。要保持簡(jiǎn)單,可能要在 DataSet 中為每個(gè) DataTable 創(chuàng)建一個(gè) DataAdapter。#t#
用多個(gè)表填充 DataSet
如果使用批處理ADO.NET SQL語句檢索多個(gè)表并填充 DataSet,***個(gè)表用指定給 Fill 方法的表名命名。后面的表用指定給 Fill 方法的表名加上一個(gè)從 1 開始并且增量為 1 的數(shù)字命名。例如,如果運(yùn)行下面的代碼:
- '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 表的數(shù)據(jù)放在名為 "Customers1" 的 DataTable 中。填充完 DataSet 之后,可以很容易地把 "Customers1" 表的 TableName 屬性改為 "Orders"。但是,后面的填充會(huì)導(dǎo)致 "Customers" 表被重新填充,而 "Orders" 表會(huì)被忽略,并創(chuàng)建另外一個(gè) "Customers1" 表。為了對(duì)這種情況作出補(bǔ)救,創(chuàng)建一個(gè) DataTableMapping,把 "Customers1" 映射到 "Orders",并為其他后面的表創(chuàng)建其他的表映射。例如:
- '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");