下面用实例进行介绍说明ADONET SQL给了我们机会使我们可以将我们自己的功能提供给Windows开发人员把多条命令合并成单一命令能减少到服务器的行程数并提高应用程序的性能
然后再发出一条批处理命令调用从数据源删除它们虽然这样做确实能提高性能但是当对 DataSet 中的数据更新进行管理时可能会增加应用程序的复杂性要保持简单可能要在 DataSet 中为每个 DataTable 创建一个 DataAdapter
用多个表填充 DataSet
如果使用批处理ADONET SQL语句检索多个表并填充 DataSet第一个表用指定给 Fill 方法的表名命名后面的表用指定给 Fill 方法的表名加上一个从 开始并且增量为 的数字命名例如如果运行下面的代码
Visual Basic Dim da As SqlDataAdapter = New SqlDataAdapter(SELECT * FROM Customers; SELECT * FROM Orders; myConnection)
Dim ds As DataSet = New DataSet()
daFill(ds Customers)
//C#
SqlDataAdapter da = new SqlDataAdapter(SELECT *FROM Customers; SELECT * FROM Orders; myConnection)
DataSet ds = new DataSet()
daFill(ds Customers)
ADONET SQL放在名为 Customers 的 DataTable 中来自 Orders 表的数据放在名为 Customers 的 DataTable 中填充完 DataSet 之后可以很容易地把 Customers 表的 TableName 属性改为 Orders但是后面的填充会导致 Customers 表被重新填充而 Orders 表会被忽略并创建另外一个 Customers 表为了对这种情况作出补救创建一个 DataTableMapping把 Customers 映射到 Orders并为其他后面的表创建其他的表映射例如
Visual Basic Dim da As SqlDataAdapter = New SqlDataAdapter(SELECT * FROM Customers; SELECT * FROM Orders; myConnection)
daTableMappingsAdd(Customers Orders)
Dim ds As DataSet = New DataSet()
daFill(ds Customers)
//C#
SqlDataAdapter da = new SqlDataAdapter(SELECT * FROM Customers; SELECT * FROM Orders; myConnection)
daTableMappingsAdd(Customers Orders)
DataSet ds = new DataSet()
daFill(ds Customers)